Wireshark分析出攻击者sql注入时查询了哪些数据?
0x001 题目
0x002 查看注入语句
将流量包导入
看着很乱,输入通过浏览器请求使用的协议为,该流量包中只有,所以我们直接过滤出协议的数据包。
过滤出http请求的数据包
注入语句如下:
由此可见攻击者采用布尔盲注进行sql注入。
0x003 观察响应包
这里我们想到注入语句成功和失败所返回的数据包一定是不同的。
观察注入响应包。
注入失败响应内容:
注入成功响应内容:
由此我们可以想到是不是可以先将注入成功响应包过滤出来???那么我们应该以什么规则进行过滤呢,或者说以响应包哪个特征进行过滤呢???
我想到的过滤条件:
过滤出响应内容中有文章内容的所有响应包
根据响应包的长度进行过滤
注入失败的响应包长度:
注入成功的响应包长度:
对于Wireshark的语法不是很熟悉,没有找到怎么以内容过滤的语法,所以我这里以响应包的长度进行过滤。
Wireshark http过滤规则:
以长度进行过滤,过滤语法为
所有注入成功的语句也可以从响应包查看到。
这条sql语句的含义:第一个字符的ASCII码为102
我怎么可能一个一个查看注入成功时字符对应的ASCII值是多少呢。
0x004 脚本编写
将上面过滤后的结果导出
使用正则过滤出注入语句和字符对应的ASCII码
这里注意注入语句成功的先后顺序,也就是上图圈出来的地方按顺序排序(从第1个字符开始判断,一直到38个字符),就是注入成功的执行流程。
知道了字符对应的ASCII码,反过来通过ASCII码得出对应的字符即可。
最后跑出
文章搬自本人博客:https://blog.csdn.net/weixin_44032232/article/details/114297460