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

2018-10-23  本文已影响30人  RabbitMask

前言

一开始让我写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"

注意此处参数需要赋值

然而在get方式中也可以使用到

常规方法:sqlmap -u “http://192.168.1.111/Article.asp?classid=1”

data方法:sqlmap -u “http://192.168.1.111/Article.asp” --data=“classid=1”

好像有点多此一举的说- -。。。

所以还是推荐用在post方式中的说。。。

那么!!!拆台的也差不多该上了。。。。

咳咳,很明显-p参数的泛用性和使用难度上都优于--data参数,

那么--data参数存在的意义呢?

干货继续~

在我们的渗透测试工作中,偶尔会碰上-r 参数没有跑出来的情况

当然,--forms参数一样会是失败的,

(我们前面讲过了,这两种方式原理是一样的,只是获取包途径不同)

我们仔细观察下Post包中的参数

就会发现参数类型也是有所区分的

第一种:

 这是类型便是我们常见的类型,-r / --forms 参数都可以正常解决

第二种:

这种类型就需要sqlmap -u  url  --data="name=1"的方式解决

(原因请参考常见的Post提交的基本方式)

-------------------------------------------------------------------------------------------------------------

花费两天的时间确认各种小细节,

只想为大家提供一点真真切切的干货

码字不宜,转贴请注明出处

在此感谢组织的小伙伴们:Parrot Security 

上一篇下一篇

猜你喜欢

热点阅读