数据库
首页 > 数据库> > 深入浅出带你玩转sqlilabs(三)

深入浅出带你玩转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