Title

[BJDCTF2020]EasySearch-1

1、打开之后界面如下:

2、在首界面审查源代码、抓包未获取到有效信息,就开始进行目录扫描,获取到index.php.swp文件,结果如下:

3、访问index.php.swp文件获取源代码信息,结果如下:

4、分析源代码发现password进行md5加密后前六位需要与'6d0bc1'相同,那就只能采取脚本或从自身收藏的md5值中搜索来获取目的字符,脚本以及搜索结果如下:

之前自己闲的时候把五位以内的所有的字符串的md5值给跑出来的:

脚本:

import hashlib

for i in range(1000000000):
    md5 = hashlib.md5(str(i).encode('utf-8')).hexdigest()
    if md5[0:6] == '6d0bc1':
        print(str(i)+' | '+md5)

5、选择一个字符串进行登录并抓取数据包,结果如下:

6、访问发现的url地址,获得如下界面:

7、补充一下什么是ssi注入,SSI 注入全称Server-Side Includes Injection(服务端包含注入),ssi可以赋予html静态页面的动态效果,通过ssi执行命令,返回对应的结果,当在网站目录中发现了.stm .shtm .shtml或在界面中发现了

<div>{$what}</div>
<p>Welcome, {{username}}</p>
<div>{%$a%}</div>

就容易产生ssi注入,此处问题的其注入格式为:<!--#exec cmd="命令" -->。

8、那就在可控参数用户名处输入可执行命令,payload:<!--#exec cmd="ls" -->,结果如下:

这个目录下未发下什么有用的东西,那就请求当前目录结构或上一级目录的,payload:<!--#exec cmd="pwd" -->或<!--#exec cmd="ls ../" -->,结果如下:

9、发现flag的文件信息后,那就直接读取flag值,payload:<!--#exec cmd="cat ../flag_990c66bf85a09c664f0b6741840499b2" -->,结果如下:

 

posted @ 2022-07-20 22:55  upfine  阅读(1028)  评论(0编辑  收藏  举报