Web安全第4讲 - sqlmap性能优化&sqlmap注入参数&sqlmap注入技术参数

一、sqlmap性能优化

1.1 sqlmap设置持久HTTP连接(长连接)

sqlmap中可以设置连接为持久连接。HTTP报文中设置 connection:keep-alive

命令行:
python sqlmap.py -u "http://127.0.0.1/sqli/Less-1/?id=1" --keep-alive --banner
在这里插入图片描述

1.2 sqlmap设置不接收HTTP Body

参数 --null-connection
sqlmap中设置空连接,表示不接受HTTP当中的Body。 可以直接获得HTTP响应的大小而不用获得HTTP响应体,常用在盲注过程中

在这里插入图片描述

1.3 sqlmap设置多线程

参数 --thread
sqlmap中设置同时发送多少个HTTP请求的多线程

一键优化

-o 添加此参数相当于同时添加下列三个优化参数

  • –keep-alive
  • –null-connection
  • –threads=3

二、sqlmap自定义检测参数

2.1 sqlmap设置探测等级: --level

  • 此参数用于指定检测级别,有1~5共5级。默认为1,表示做最少的检测,相应的,5级表示 做最多的检测
python sqlmap.py -u "http://127.0.0.1/sqli/Less-1/?id=1" --banner --level 2 -v 5

2.2 sqlmap设置风险等级:–risk

  • 此参数用于指定风险等级,有1~3共3级。默认风险等级为1,此等级在大多数情况下对测试目标无害。
  • 风险等级2添加了基于时间的注入测试,等级3添加了OR测试。

三、sqlmap指定位置注入

3.1 sqlmap设置指定注入参数

  • 默认情况下Sqlmap会测试所有GET参数和POST参数当level大于等于2时会测试cookie参数,
    当level大于等于3时会测试User-Agent和Referer。实际上还可以手动指定一个以逗号分隔的、
    Referer是跳转的,反爬的
    要测试的参数列表,该列表中的参数不受level限制。这就是“-p”的作用
  • 如果不想测试某一参数则可以使用 –skip

3.2 Sqlmap设置URI注入位置

  • 当注入点位于URI本身内部时,会出现一些特殊情况。除非手动指向URI路径,否则sqlmap不会对URI路径

  • 执行任何自动测试。必须在命令行中添加星号(*)来指定这些注入点。

     python sqlmap.py -u "http://127.0.0.1/sqli/Less-1/?id=1*&us=1&uname=admin" --banner
    

四、sqlmap注入参数

4.1 sqlmap强制设置DBMS

默认情况下sqlmap会自动识别探测目标web应用程序的后端数据库管理系统(DBMS),sqlmap支持 的DBMS种类

  • MySQL
  • Oracle
  • PostgreSQL
  • Microsoft SQL Server
  • Microsoft Access
  • Firebird
  • SQLite
  • Sybase
  • SAP MaxDB
  • DB2

	可以指定数据库来进行探测
	参数 --dbms 数据库类型
	python sqlmap.py -u "http://127.0.0.1/sqli/Less-1/?id=1" --dbms mysql --banner

4.2 sqlmap强制设置OS系统

默认情况下sqlmap会自动探测目标web应用程序的后端操作系统,sqlmap完全支持的OS种类Linux、 Windows

参数 --os 系统类型
python sqlmap.py -u "http://127.0.0.1/sqli/Less-1/?id=1" --dbms mysql --os linux --banner

4.3 Sqlmap强制设置无效值替换

参数:–invalid-bignum

在sqlmap需要使原始参数值无效(例如id=13)时,它使用经典的否定(例如id=-13)。

有了这个参数,就可以强制使用大整数值来实现相同的目标(例如id=99999999)。

python sqlmap.py -u "http://127.0.0.1/sqli/Less-1/?id=1" --invalid-bignum --banner
参数:–invalid-logical

有了这个参数,就可以强制使用布尔操作来实现相同的目标(例如id=13 and18=19)。

参数:–invalid-string

有了这个参数,就可以强制使用随机字符串来实现相同的目标(例如id=akewmc)。

五、Sqlmap自定义注入负载位置

在某些情况下,只有当用户提供要附加到注入负载的特定后缀时,易受攻击的参数才可被利用。当用户已经知道查询语法并希望通过直接提供注入有效负载前缀和后缀来检测和利用SQL注入时,这些选项就派上用场了。

  • –prefix 设置SQL注入Payload前缀

  • –suffix 设置SQL注入Payload后缀

     $query = "SELECT * FROM users WHERE id=('.$_GET['id'].') LIMIT 0, 1";
     
     .$_GET['id'].  ==>  ')AND ('abc'='abc
     
     python sqlmap.py -u "http://ip/sqlmap/mysql/get_str_brackets.php\
     ?id=1" -p id --prefix "')" --suffix " AND ('abc'='abc"
     
     $query = "SELECT * FROM users WHERE id=('1') <PAYLOAD> AND ('abc'='abc') LIMIT 0, 1";
    

六、Sqlmap设置Tamper脚本

sqlmap本身不会混淆发送的有效负载,除了单引号之间的字符串被CHAR()类似的表示形式所取代之外。sqlmap通过Tamper脚本来绕过WAF等防御措施,可以在tamper文件夹下找到所有sqlmap自带的tamper脚本。

python sqlmap.py -u "http://ip/sqlmap/mysql/get_int.php?id=1" --tamper "between.py,randomcase.py,space2comment.py" -v 3

七、Sqlmap设置DBMS认证

设置DBMS认证方式通过以下命令:

--dbms-cred = username:password

python sqlmap.py -u "http://127.0.0.1/sqli/Less-3/?id=1" --dbms-cred = "root:root" --banner

八、sqlmap注入技术参数

8.1 sqlmap设置具体SQL注入技术

参数 --technique

此参数用于指定检测注入时所用技术。默认情况下Sqlmap会使用自己支持的全部技术进行 检测。 此参数后跟表示检测技术的大写字母,其值为B、E、U、S、T或Q,含义如下:

  • B:Boolean-based blind(布尔型注入)
  • E:Error-based(报错型注入)
  • U:Union query-based(可联合查询注入)
  • S:Stacked queries(可多语句查询注入)
  • T:Time-based blind(基于时间延迟注入)
  • Q:Inline queries(嵌套查询注入)

–technique ES指定使用两种检测技术。
“–technique BEUSTQ”与默认情况等效。

8.2 sqlmap设置时间盲注延迟时间

参数:–time-sec

用此参数设置基于时间延迟注入中延时时长,默认为5秒

8.3 sqlmap设置union字段数

  • 在进行联合查询注入时,Sqlmap会自动检测列数,范围是1到10。当level值较高时列数检测范 围的上限会扩大到50。

  • 可以用此参数指定列数检测范围,如==–union-cols 12-16==就会让Sqlmap的列数检测范围变成 12到16。

     python sqlmap.py -u "http://127.0.0.1/sqli/Less-3/?id=1" --technique U --current-db -v 3 --union-cols 12-18
    

8.4 sqlmap设置union字符

参数:–union-char

默认情况下Sqlmap进行联合查询注入时使用空字符(NULL)。但当level值较高时Sqlmap会生 成随机数用于联合查询注入。 因为有时使用空字符注入会失败而使用随机数会成功

python sqlmap.py -u "http://127.0.0.1/sqli/Less-3/?id=1" --technique U --current-db -v 3 --union-cols 12-18 --union-char 123

8.5 sqlmap设置union查询表

参数:–union-from

有些情况下在联合查询中必须指定一个有效和可访问的表名,否则联合查询会执行失败

8.6 sqlmap识别指纹

探测目标指纹信息:参数 -f或者–fingerprint
–banner 差不多

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值