前言
一开始让我写Post方法实现Sql注入我是拒绝的
可是无奈之前已经许诺过了
虽然post方法注入相对简单
但是我还是想在此总结出更多的post注入方法与思路
虽然DWVA中并没有post注入
但因为属于基础课程我把内容并入到了DWVA教程中
总的来讲post注入主要有2+1种方式,
然而在此给出全网独家内容,满满干货。
唉,为什么是2+1?
(一)配合burp suite抓包注入
思路:借助burpsuite抓取post包,存为post.txt文件
直接 sqlmap -r post.txt
开始进行注入测试
(二)自动搜索表单
sqlmap.py -u URL --forms
官方:--forms : Parse and test forms on target URL
其实自动搜索表单操作即使用sqlmap自带的抓包功能代替burpsuite功能
一旦发现post包,会收到提示:do you want to test this form? [Y/n/q]
回车(Y)后,会自动利用选择的post包进行注入测试
(三)干货:参数-p / --data ?
-p参数 官方:-p : TESTPARAMETER Testable parameter(s)
-p功能与--skip功能对立,sqlmap默认测试所有的GET和POST参数,当--level的值大于等于2的时候也会测试HTTP COOKIE头的值,当大于等于3的时候也会测试User-Agent和HTTP Referer头的值。但是你可以手动用-p参数设置想要测试的参数。例如: -p "id,user-anget",当你使用--level的值很大但是有个别参数不想测试的时候可以使用--skip参数。例如:--skip="user-angent.referer"
也就是说-p参数适用与一切参数指定的情况,并可-p "a,b"同时指定多个参数。
示例:
sqlmap -r post.txt -p "a,b"
sqlmap -u url -p "a,b"
注意此处参数不需赋值
--data=DATA 参数 官方:--data=DATA : Data string to be sent through POST (通过POST 发送数据字符串)
此参数是把数据以POST方式提交,sqlmap会像检测GET参数一样检测POST的参数。
也就是说该参数只能用于post方式的注入漏洞中。
示例:
sqlmap -u url --data="a=1,b=1"
注意此处参数需要赋值
那么!!!拆台的也差不多该上了。。。。
咳咳,很明显-p参数的泛用性和使用难度上都优于--data参数,
那么--data参数存在的意义呢?
干货继续~
在我们的渗透测试工作中,偶尔会碰上-r 参数没有跑出来的情况
当然,--forms参数一样会是失败的,
我们前面讲过了,这两种方式原理是一样的,只是获取包途径不同
我们仔细观察下Post包中的参数
就会发现参数类型也是有所区分的
第一种body:
参数1=value1&参数2=value2.....
这是类型便是我们常见的类型,-r / --forms 参数都可以正常解决
第二张body:
--c7eb38bf-7ea1-4fbc-836a-47ceafdfd30a
Content-Disposition: form-data; name="page"
Content-Length: 1
1
--c7eb38bf-7ea1-4fbc-836a-47ceafdfd30a
Content-Disposition: form-data; name="search"
Content-Length: 1
qqqqq
--c7eb38bf-7ea1-4fbc-836a-47ceafdfd30a--
这种类型就需要sqlmap -u url --data="name=value"的方式解决
-------------------------------------------------------------------------------------------------------------
咳咳,关于代码层的解释,给我一点时间
欢迎各位小伙伴与我讨论。。。。。。
花费一天的时间确认小细节,
只想为大家提供一点真真切切的干货
在此感谢组织的小伙伴们:Parrot Security
我可以弱弱的丢个个人微信公众号么,粉丝太少一直没有写作激情,
如果你们喜欢技术,喜欢parrotsec,喜欢二次元,期待认识大家。
才不是什么萝莉控,只是喜欢的女孩纸碰巧是萝莉罢了,哼~
DWVA手把手教程(四)——SQL注入(Post)