sqli-labs靶场15-19关通关笔记中总结

第十五关

本关属于时间注入,基于源码分析,闭合字符是单引号。

本关没有错误提示,那么我们只能靠猜测进行注入。这里我直接从源代码中看到了 sql语句。

那这里对 id 进行 ‘ id’ 的处理。

本关我们利用延时注入进行。

uname=admin'and If(ascii(substr(database(),1,1))=115,1,sleep(5))#&passwd=11&submit=Submit

正确的时候可以直接登录,不正确的时候这里会延时 5 秒。

然后使用length猜数据库名的长度,根据注入结果,猜到的数据库长度为8个字符,

if(length(database())=7,1,sleep(5))#&passwd=&submit=Submit

其次继续使用if函数进行猜数据库名

 

最后就是猜数据库表和猜数据库了,这里就不在叙述了。

第十六关

本关与第16关相似,基于源码分析,闭合字符是双引号。

本题没有错误提示,这里利用延时注入,使用(“”)进行处理。

在php源代码中添加下列内容输出该语句。

 然后回到关卡,本关使用双引号加括号进行包裹。

利用延时注入猜解数据库。

post数据: uname=admin")and If(ascii(substr(database(),1,1))=115,1,sleep(5))#&passwd=11&submit=Submit

数据库第一位是s。

第十七关

可以从php源码中可知,这是一个更新密码语句。

username需要输入正确 new password的值输入:

利用报错类型的盲注extractvalue

uname=admin&passwd=11'and extractvalue(1,concat(0x7e,(select @@version),0x7e))#&submit=Submit

可以看出成功爆出来数据库版本号。

 

这样就可以将@@version换成其他句进行注入,也可以用sleep进行注入。

爆出对方数据库security。

第十八关

这道题,我们直接从源代码分析,可以看出这道题,函数check对用户的uname和passwd都做了过滤。

 又看到 insert语句,他把user-agent插入到了数据库,所以可以从这里下手,而且看的出来是单引号型,接下来开始爆破。需要使用抓包工具,更改user-agent。

又看到 insert语句,他把user-agent插入到了数据库,所以可以从这里下手,而且看的出来是单引号型,接下来开始爆破。 需要使用抓包工具,更改user-agent。来吧,这里我们用burpsuit抓取。

从服务器的响应包可以看出user Agent 信息变成hxzhxzhxz.

然后我们更改自己的user-Agent ,利用extractvalue函数,来爆出mysql版本号。

下图成功看出成功爆出数据库的版本号未5.7.26。

第十九关

本关与第十八关类似,从源代码可知,我们获取到的是HTTP_REFERER。我们需要从referer里修改。

如图我们将请求包的referer随意设置为hhhhhhhhh,然后发送。响应respose为hhhhhh。

如下图可知我们更改自己的Referer,利用select @@basedir函数,成功爆出mysql的安装路径。

'and extractvalue(1,concat(0x7e,(select @@basedir),0x7e)) and '1'='1

猜你喜欢

转载自blog.csdn.net/weixin_45585955/article/details/124220823
今日推荐