进阶—中等篇 | CTF Web 写题笔记
★ 考点偏逻辑漏洞和实际漏洞利用,需要写脚本或构造Payload
暨南大学 · 一流网络Web挑战赛

一、Code_exec — Shellshock + PHP多维数组RCE
▶ 先聊点知识:Shellshock漏洞(CVE-2014-6271)
Shellshock是2014年的超级漏洞,CVSS满分10.0,比Heartbleed还狠。原理其实不复杂:Bash处理环境变量时,当值以"()"开头,会把后面的内容当函数执行,而不是存为字符串。所以构造恶意环境变量值就能执行任意命令。
和CGI组合就是最常见攻击场景。Web服务器把HTTP头字段作为环境变量传给CGI脚本,脚本用Bash执行。所以构造恶意User-Agent、Cookie等头就能RCE。判断线索:响应头有cgi-bin目录、Apache+CGI架构等。
▶ 先聊点知识:PHP多维数组索引与RCE
PHP的数组索引特性在CTF里经常用来构造复杂Payload。字符串可以像数组一样取字符,比如"abcdef"[0]="a"。但多层索引时就有意思了。本题的核心代码:
eval($_REQUEST[$_GET[$_POST[$_COOKIE['CTF']]]][6][6][6]);
解析链:Cookie的CTF→POST取值→GET取值→$_REQUEST取值→[6][6][6]取索引。关键绕过点:如果传字符串,[6]取第7个字符,再[6]就超界了。但传数组就不一样,多维数组的[6][6][6]可以访问深层元素。所以构造一个多维数组,把恶意代码放到[6]


1万+

被折叠的 条评论
为什么被折叠?



