【CTF】第12届极客大挑战GeekChallenge WEB部分Writeup by Xunflash
浏览 537 | 评论 0 | 字数 4122
Xunflash
2020年11月20日
  • 第一次参加这种比赛,写得很垃圾,200以上的都不会做。。。随便看看就好


    题目名称:Welcome

    解题过程:打开发现405

    405

    ,百度搜索405发现需要使用post提交,burpsuite抓包改成post,forward,右键send to repeater

    source

    repeater

    然后读一下代码发现

    ($_POST['roam1'] !== $_POST['roam2'] && sha1($_POST['roam1']) === sha1($_POST['roam2'])
    

    好怪啊这个东西,然后疯狂百度,搞了好久发现了这篇文章https://www.pianshen.com/article/732238291/
    里面说数组的sha1值相同,虽然不知道什么原理,但是直接用hackbar

    hackbar

    在phpinfo界面找到auto_prepend_file ,后面有一个f1444aagggg.php,打开发现Not Found ,但是没有数据库信息和php信息,很怪,然后就不知道干啥,后来想着拿去burpsuite试一下查看源代码,然后就发现一行flag了

    题目名称:朋友的学妹

    解题过程:打开网站发现要我们查看源代码,于是查看源代码,有隐藏内容<!--flag=U1lDe0YxQF80c19oNExwZnVsbGxsbGx9-->
    使用base64解密得到flag

    题目名称:EZwww

    解题过程:打开网站发现啥也点不了,题目提示是has been backed up于是直接掏出御剑扫描

    御剑后台扫描工具

    下载www . zip 解压然后看到一个flag!!!.txt打开是个假的。。。太皮了
    然后打开index.php里面
    $key1 = $_POST['a'];
    $key2 = base64_decode('c3ljbDB2ZXI=');
    if($key1 === $key2)
    解码c3ljbDB2ZXI=之后post上去就可以得到flag

    题目名称:EZgit

    解题过程:打开发现问我知不知道githack,废话我当然不知道啦,然后去百度,下载githack,使用,出来个fl4g.php,里面提示flag is toooo old,然后我傻了。
    直到搜到
    https://www.cnblogs.com/anweilx/p/12453703.html
    哇这个真的np直接教我做
    照着他的图片操作然后顺利得出flag

    题目名称:刘壮的黑页

    解题过程:翻到底下发现有源代码,按照提示同时使用get(/?username=admin)和post(hackbar),得到flag

    题目名称:我是大黑客

    解题过程:打开网站提示有php.bak备份文件,下载后发现是一句话木马,打开中国蚁剑,链接http://39.106.144.160:100/liuzhuang.php,密码liuzhuang,链接后进入根目录发现flag

    题目名称:ezbypass

    解题过程:
    打开网站发现要用get请求,使a与b比较,a与b不能相等,并且让strcmp函数返回值0。参考
    https://blog.csdn.net/qq_36869808/article/details/83421379
    发现又是数组。。。然后来到第二步发现要让非数字等于数字,参考
    https://blog.csdn.net/Auuuuuuuu/article/details/79621635
    post c=123a 得到flag
    题目名称:flagshop
    解题过程:
    提示csrf,不要想成为admin,于是老老实实打开网站注册账号登录,进入报告界面看一下,一脸懵逼,百度一下ctf csrf,看了好多文章,大概明白是个啥玩意了,然后打开报告页面,随便输东西,提示验证码错误。。。然后看见验证码那里有一串代码,都是md5($code)[0:5] == xxxxx 的五位数,好像是md5碰撞(看不懂代码哭了)然后百度md5碰撞http://0verflow.cn/?p=478
    下面有一个md5值是0e开头的字符串生成器,于是改了一下改成五位数的

    import hashlib,random,string
    a = input("input:")
    while True:
        s = ''.join(random.sample(string.ascii_letters + string.digits, 5))
        m = hashlib.md5(s.encode("utf-8")).hexdigest()
        if m[:5] == a:
            print(s)
            break
    

    在命令行里面运行,输入验证码栏里面的xxxxx,可以得到一串字符,输入进去,其他两栏乱输,显示提交成功。然后去转账界面使用burpsuite抓包

    proxy

    然后右键

    csrf

    选择这个,就会生成csrf攻击的html代码

    csrf2

    但是这个要改一下,参照https://www.cnblogs.com/-qing-/p/11015075.html
    改成自动提交的表单,像这样

    <!DOCTYPE html>
     <html lang="en"> <head>
          <meta charset="UTF-8">
          <title>CSRF</title>
     </head>
     <body>
    <form action="http://173.82.206.142:8005/transfer.php" method=POST>
          <input type="hidden" name="target" value="xunflash" />
          <input type="hidden" name="money" value="10000000000" />
          <input type="hidden" name="messages" value="123" />
    </form>
    <script>document.forms[0].submit();</script>
    </body>
     </html>
    

    然后在gitee或者GitHub建一个免费的静态页面,参照这个
    https://gitee.com/help/categories/56
    最后生成静态页面,把页面的网址提交上去(感谢翔哥py提示,我之前一直在提交html的源码上去,我是彩笔)
    然后就有了

    购买flag就好了
    (记得把gitee的html删掉,不然好像会封号)

    (淦,这个好难啊)

    题目名称:知x堂的php教程

    没写出来。。。
    解题过程:
    没做出来还是写一下吧,应该是代码审计+注入?
    无奈我看不懂代码,还要学。。。进入网页后是个trump哈哈哈,然后点课程历史下的教案观察,是listdir.php,有个参数dirname,先不管,打开flag.php,发现地址栏是displaySourceCode.php?phpfile=JN/flag.php。哦吼,可以看源码,赶紧看看listdir.php的代码,输入
    http://47.94.239.194:8082/displaySourceCode.php?phpfile=listdir.php,
    然后就出来源代码了,通过注释可以看到一些功能实现的函数,可能要用注入,然后仿照这种方式看了waf.php, displaySourceCode.php就没有然后了。不会了……

    题目名称:带恶人六撞

    解题过程:
    随便输入了一个’符号报错了,肯定是注入,直接打开sqlmap,查出来一个数据库geek_sql,然后使用命令
    python3 sqlmap.py -u http://49.234.224.119:7415/?id=1 --dump-all -D geek_sql
    然后直接爆出flag

    本文作者:Xunflash
    本文链接:http://xunflash.top/index.php/archives/geekchallenge2020.html
    最后修改时间:2021-04-01 21:21:16
    本站未注明转载的文章均为原创,并采用 CC BY-NC-SA 4.0 授权协议,转载请注明来源,谢谢!
    评论
    球球给菜鸡站长评个论8
    textsms
    支持 Markdown 语法
    email
    link
    评论列表
    暂无评论