深入浅出带你玩转sqlilabs(三)
作者:互联网
常见提交方式下的注入漏洞
WEB应用在数据传递接受中,针对SQL注入安全漏洞,由于数据大小,格式等原因,脚本在接受传递时会有多种传递方式,传递方式的不同将影响到安全测试的不同
第一点:数据常见提交方式
https://www.cnblogs.com/weibanggang/p/9454581.html
get与request提交方式:
本地测试,直接使用链接传参,各种提交方式的效果如下图,get与request提交方式本地有回显,说明这两个提交方式可以通过链接传参发送到服务器
post提交方式:
给服务器同时本地echo回显:用post data插件,或者用burpsuite抓包改数据
cookie提交方式:
用burpsuite直接在响应正文插入cookie值
$_SERVER['HTTP_ACCEPT']的作用(头部注入)
post注入:11关
先输入账户加个’看看报错
分析:
参数有第2对单引号进行闭合,就好办了
注意:注入的方式有三个:post data插件,burpsuite抓包改包,还有直接在框里面直接填
这里推荐用post data插件,简单直观,先右键查看源代码表单哪些元素要post提交的
就这三个元素(提交的时候一个也不能漏)
后台源码中uname有单引号,我们可以进行闭合
用uname参数进行闭合(三个参数之间用&连接)
uname=-gsdftg' order by 2#&passwd=pass&submit=Submit
报错负号(显示错误信息),闭合单引号(执行我们的命令),注释负号#(不使用--+注释的原因是:POST参数不经过url编码,命令传输到后端注释符变不了标准注释符:-- (后面有空格))
注入成功
cookie注入:20关
随便输入表单,抓一下包,第一个包(POST包)是登录验证的请求包,将cookie存储在服务器同时在本地留下session信息
再里面加个cookie信息,然后放过去
第二个包(GET包)直接验证cookie,与第一个包相互匹配,一样改个cookie,放过去
登录成功,查看历史包找到GET包,改包
报错
报错,注释,一把梭
补充:request请求方式是包含其他请求方式(GET,POST,COOKIE等)的,也就是说,用其他请求方式请求的数据,request请求也可以做到,这个适用范围就很广了,如bypass方面等
万能密码(POST登录框):11关
在登录框输入(知道用户名admin)
先来看一下正常登陆进去的界面,正确的账号密码都是admin
同时抓包看看数据传输与SQL语句执行
可以看到这里的uname与passwd参数传递到SQL语句中的username与password参数中进行查询,由于①username and ②password 的逻辑判断:真and真=真,所以可以登录成功,那么我们只需要构造一个逻辑判断为真的SQL参数,即可进行万能登录的操作
比如在用户名输入框中输入:
admin' or '1'='1# //逻辑判断:真或真=真,可登录,最后别忘了用#号注释掉后面的SQL语句
或者
admin' or 1=1# 真或真=真
或者
admin'and ''=''# 真或假=真
或者
admin'or' 真或假=真
在登录框输入(未知用户名)
思路一样,只是将username参数变为假,password为真的“or”判断
'or '1'='1'limit 1# 假或真=真 (limit语句要不要都一样)
标签:sqlilabs,方式,admin,深入浅出,登录,cookie,玩转,提交,post 来源: https://www.cnblogs.com/impulse-/p/14175327.html