DWVA手把手教程(四)——SQL注入(Post)

前言

一开始让我写Post方法实现Sql注入我是拒绝的

可是无奈之前已经许诺过了

虽然post方法注入相对简单

但是我还是想在此总结出更多的post注入方法与思路

虽然DWVA中并没有post注入

但因为属于基础课程我把内容并入到了DWVA教程中

总的来讲post注入主要有2+1种方式,

然而在此给出全网独家内容,满满干货。

唉,为什么是2+1?

(一)配合burp suite抓包注入

思路:借助burpsuite抓取post包,存为post.txt文件

直接 sqlmap -rpost.txt

开始进行注入测试

(二)自动搜索表单

sqlmap.py-uURL --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,喜欢二次元,期待认识大家。

才不是什么萝莉控,只是喜欢的女孩纸碰巧是萝莉罢了,哼~

相关推荐