近期有一场新生赛挺受欢迎 看了一下web的题 都不算很难 所以本帖将week1全部的web题目依次进行讲解并提供一些骚思路来拓展
[Week1] HTTP 是什么呀
其实这道题几乎没有难点,都可以用hackbar完成,唯一的小难点就是第一个get传参的%00
GET参数:因为浏览器会将url会自动解码一次吧,所以我们可以将%00进行二次编码也就是%2500
POST 参数:打开hackbar的post传参功能 写入参数名和参数值即可Base=fl@g
Cookie:依旧是使用hackbar 右侧cookie处传入对应的值
UA和Referer也是一样的道理 所以不再赘述
这里说一下IP来源 一般数据包里显示IP来源使用的是X-Forwarded-For
所以我们只需要新建一个参数 传入值为127.0.0.1即可
最终结果:
flag可以使用burp抓包 重放获得 也可以直接去看网络的请求包
拿到的结果进行base64解码即可
[Week1] 喵喵喵´•ﻌ•`
这道题其实就是一个一句话木马,直接get传参即可,我们直接使用system('cat /flag');进行获取(一般CTF比赛中flag基本上都会放在根目录 或者当前目录 所以可以试一下)
注意点:DT参数要大写 linux服务器是对大小写敏感的
[Week1] md5绕过欸
看代码很啰嗦 简单概括就是 get接收name和name2的值 POST接收password和password2
当name和password内容不相等但md5值相等进行下一个判断(判断name2和password2)判断成立即可包含flag并输出
这道题思路最直接就是使用数组绕过(php特性)
传入两个不同的数组,经md5加密后结果都是null,比较则相等
让我们看下解题结果
payload:
get:/?name[]=1&name2[]=1
post:password[]=2&password2[]=2
[Week1] A Dark Room
这道题是CTF签到题很常用的方法 直接吧flag赛到前端代码的注释里面
[Week1] upload
这道题我们先直接尝试上传一个一句话木马 看看有没有过滤
怎么个事 直接传上去了?还没有任何过滤啊!
我们看一下展示的源代码
最关键的其实就是告诉你 上传文件的路径在uploads 名字未做修改 所以你可以直接使用蚁剑连接了!
小知识 不需要webshell工具也可以和木马交互哦~
[Week1] Aura 酱的礼物
这道题是web里面难度最高的,考点也比较多,玩法也比较多 这里给大家介绍几种玩法
1.第一个if是判断你传的变量pen 这个文件里面有没有Aura 第二个if判断是要求你challenge值 必须以http://jasmineaura.github.io开头 第三个if判断 就是基于第二个网站 里面必须含有:已经收到Kengwang的礼物啦内容才可以 最后就是一个任意文件包含
先介绍第一种玩法
伪协议:通过data协议输出他要的内容
第二个if和第三个if一起讲 首先告诉大家的是 那个博客没有留言板 也没有任何隐藏信息可以帮你过第三个if
所以我们利用解析原理 可以构造一个http://jasmineaura.github.io@127.0.0.1 这样网站会自动访问后面的网址
第三个文件包含 题目已经告诉了在flag.php目录下 但是进行包含后 无输出,这时候其实就猜到了 应该是不能直接输出 所以我们依旧可以采用伪协议编码成base64进行输出
payload:pen=data://text/plain,Aura&challenge=http://jasmineaura.github.io@127.0.0.1&gift=php://filter/read=convert.base64-encode/resource=flag.php
接下来介绍第二种玩法
我们已知pen是检查文件内容是否包含规定的文本 所以我们可以采用远程文件包含
第二个if判断我们可以采用域名解析,已知 第二个if要求必须以http://jasmineaura.github.io开头 那么我们可以把自己的域名 解析一个前缀为jasmineaura.github.io并且创建个文件 里面写入第三个if要求的文本(例如你的域名是baidu.com 那么你可以解析一个jasmineaura.github.io.baidu.com 然后上传个文件 最终效果:http://jasmineaura.github.io.baidu.com/1.txt )
最后的文件包含 众所周知中间件都是有日志的 这个容器使用的是nginx 那么默认的日志路径应该是/var/log/nginx/access.log而php的文件包含有一个特点 就是被包含的文件都会被当做php代码来执行,日志里面一般记录访问者的ip 访问地址和UA 前两个想要达到目的相对较难,所以可以在UA下手,只要我们在ua的参数内写入一句话木马 并且包含一句话木马 即可getshell!
直接实操
可以看到 日志文件被正常包含了 现在木马写入进去了 直接蚁剑连接即可
boby处填写对应post输出即可
拿到flag 题目结束
第三种玩法:
之前讲到远程文件包含,但是如果没有自己的服务器就很难搞,这里其实主办方就已经给你提供了,还记得拿到upload上传题吗?直接用他的容器去传一个文件即可啦!
好了 题目基本上就是这样~!