[CTFshow]萌新区Web题目记录(连载中)
前言
我是菜鸡。
Web1(php intval特性)
get一个id,intval($id)不能大于1000,但是flag就是要1000。这里需要利用get和intval的特性:
$id = $_GET['$id'];
这样得到的变量id带有引号,如果我们直接输入1000,那么得到的$id='1000',intval($id)=1000,无法绕过;但如果我们输入'1000',得到的$id=''1000'',intval($id)是分析''1000''(两个单引号),判断的是'1000',以字符开头,返回0,成功绕过。
还有其他绕过方式(列举部分):
- "1000"
- 680|320(但650|350不行?)
- 999+1(intval等于999)
- (1000)
- 0x3e8(16进制,intval=0)
- 0b1111101000(2进制,intval=0)
- 144^888
- 1 or 1=1#(sql注入回显)
- id#(显示所有)
Web2(php intval特性)
和上一题相比,多了一个
preg_match("/or|\+/i",$id)
使用'1000'等方式仍可以绕过。
Web3(php intval特性)
过滤了一堆,但是'1000'还是可以拿下。
Web4(php intval特性)
你说阿呆一次一次一次换了多少个正则匹配了,改过不啦,换汤不换药啊。
Web5(php intval特性)
过滤掉了很多,但是~~1000和144^888依然可以绕过。
Web6(php intval特性)
异或也被过滤了,终极大杀器~~1000依然有效。
Web7(php intval特性)
取反也被过滤了,使用终极超级大杀器二进制0b1111101000绕过。
Web8(RCE 梗题)
我以为是个rce,结果确实是个rce,但是是个梗题,题目描述是阿呆被发配到埃塞俄比亚了,就是删库跑路了,所以payload:
?flag=rm -rf /*
大无语。
Web9(RCE)
很明确的rce,三种方式选一个,首先测试?c=system("ls");成功回显,有config.php和index.php。这里明确告诉config.php中有flag,想办法读这个文件,使用cat无法读取,使用highlight_file函数成功回显文件内容,拿到flag。
Web10(RCE)
看清楚了,这次是过滤掉了这三个,使用别的。直接show_source即可。
Web11(RCE)
多过滤了一个cat,不过不打紧,使用show_source即可。
Web12(RCE base64绕过)
又过滤了"config"、"."、"php",不过没事,我们可以采用base64编码方式绕过:
?c=$a=base64_decode("Y29uZmlnLnBocA==");show_source($a);
Web13(RCE ?>标签闭合)
好家伙,这次过滤了分号,无法闭合语句。这里学到一个东西:可以用?>直接闭合标签代替分号,所以payload:
?c=show_source(base64_decode("Y29uZmlnLnBocA=="))?>//config.php
Web14(RCE 转文件包含 php伪协议)
把左括号也过滤了,这属实把我难住了,查百度,发现这样一种sao姿势:
?c=include$_GET[a]?>&a=php://filter/read=convert.base64-encode/resource=config.php
把rce直接当文件包含做,学到了学到了。(这种方法对之前几个题都有效)
Web15(RCE 转文件包含/一句话木马)
又过滤了?和>这种标签闭合的符号,但是把分号放出来了。
第一种解法:上一题的payload把?>换回分号即可。
第二种解法:利用文件包含上传一句话木马,payload如下:
Web16(md5爆破)
python编写脚本进行md5爆破,不知道后面接多少位,一层一层加即可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现