Adworld-week1-test
Web
1.robots 难度一
考察对robots协议的了解,直接访问robots.txt即可得到flag
2.backup 难度一
根据提示搜索得知php备份文件为php.bak或者php~,访问可得flag
3.cookie 1
直接访问cookie.php
4.disabled_button 1
F12审查页面元素,直接删去disabled
5.weak_auth 1
随便输入后查看F12提示需要字典,于是用Burpsuite进行爆破,但爆半天爆不出来,结果是被自带的字典坑了
6.simple_php 1
1 |
|
7.command_execution 2
命令拼接,没有任何过滤
ip;cat ../../../home/flag.txt
cyberpeace{eec7c22e3511dd816e5f5afd75623d2c}
8.Training-WWW-Robots 1
User-Agent 修改为 Yandex 即可访问fl0g.php
cyberpeace{0aec2f4db7cbe527631d5c1011a094c7}
9. xff_referer 2
添加请求头
X-forwarded-for : 123.123.123.123 伪造IP
Refer : https://www.google.com 伪造来源
cyberpeace{523d0bac2ff1cecf68ab87073f2cb327}
10. baby_php 1
访问index.php 在响应头中有FLAG : flag{very_baby_web}
11 .simple_js 3
一开始是以为源码里藏了密码
按F12发现一个十六进制串转换一下得到一串形似ASCII码的东西
1 |
|
12. PHP2 1
一开始没有思路,bing了一下得扫目录,但用御剑扫过以后只扫了一个已知的index.php,再看一眼wp是phps源码泄露,但该怎么想到呢,又没有提示
1 |
|
13. ics6 1
进环境后怎么点都没用,就去扫文件目录扫出来
访问index.php给试出来页面了,看有个送分题应该就是这了,但是怎么点确认都没点动静,随便传了几个id也没啥动静
没想到是去对Id进行爆破,涨知识了
14. php_rce 2
进入环境,直接开bing,一下就搜到了,是thinkphp 5-rce的洞 在网上摘了点poc过了
此处用的是 控制名未过滤导致rce
- ThinkPHP 5.0.5-5.0.22
- ThinkPHP 5.1.0-5.1.30
function为反射调用的函数,vars[0]为传入的回调函数,vars[1][]为回调函数的参数
1 |
|
另个洞是 核心类Request 的RCE(需要开启debug)
- ThinkPHP v5.0.x - 5.0.23
1 |
|
flag{thinkphp5_rce}
15.web_php_include 2
大小写可以绕过,但我的马传不上去
于是用data://协议
payload: ?page=data://,<?php system('cat ./fl4gisisish3r3.php');?>
F12查看flag
16. unserialize3 1
只需要绕一下wakeup 修改变量数大于实际变量
- 还可以使用C代替O能绕过_wakeup(),但那样的话只能执行construct()函数或者destruct()函数,无法添加任何内容
1 |
|
17.[HCTF2018] WARMup 2
先访问hint.php
phpmyadmin 4.8.1-4.8.0漏洞目录穿越 https://www.cnblogs.com/leixiao-/p/10265150.html
本地复现不出来
1 |
|
source.php?..
整体会被看做是一个目录,而不会去检查它的正确性(可能会用到吧)
18.upload1 2
bp抓包绕过前端检测,<?php标签被过滤但可用大小写绕过
19.NewsCenter 2
随便试了点输入,当搜索单引号时出错怀疑是sql,进行注入后确认是sql注入
1 |
|
20.Web_php_unserialize 2
绕过 /[oc]:\d+:/i
例如O:4:
加入+号可以绕过 O:+4:
- fast destruct : 修改类元素数量或删除末尾大括号可提前触发destruct
- 含有private项等不可见字符时不能在外部修改且只能在类的内部进行修改赋值(如construct)
1 |
|
21.CAT 5
常规命令注入没法提示无效IP,输入cat有回显但没什么用
小搜一把,可以试试fuzz
传入某些值如%2e%2e%c4%af%2ehtpasswd
有报错,根据下面的报错可以得知是gbk编码宽字符
将源码打开后出现django报错页面,在这里可以找到网页路径是 ‘/opt/api’
后面看了题解说是@
字符没有过滤,且联系比赛的提示可以用@
读取文件(但是我去翻php手册的这条时已经没有@前缀的介绍了),那么后面就是读取django的默认文件等获取信息了
django项目下一般有配置文件settings.py
设置网站数据库路径(默认使用的是sqlites),如果使用的是其它数据库的话settings.py则设置用户名和密码 /?url=/opt/api/api/settings.py
- 需要注意django项目生成时settings.py会存放在以项目目录下再以项目名称命名的文件夹下面
好像原本报错内容中就含有settings中的内容吧,可以跳过这一步
1 |
|
22.fileclue 1
一开始想着包含index.php测试绕过是否成功,结果递归包含给我bp干爆了()
23.supersqli 2
堆叠注入(有点像RCE)
这是将目标表修改为当前查询的表,并加入或者命名id列
1 |
|
或者使用handler直接查询
1 |
|
24.Web2 2
解密题
1.strrev()反转字符串
2.$_c=substr($_o,$_0,1);
截取$_0位置字符
3.$__=ord($_c)+1;
返回ASCII码并传给$__
4.$_c=chr($__)
获取ASCII码对应字符
5.$_=$_.$_c;
连接
6.先base64加密,再反转,再rot13加密
所以先rot13解密,再反转,再Base64解密,再退一位ASCII码,再反转即得flag
1 |
|
25.Web_python_template_injection 2
模板注入,探查注入点
{{2*2}}
- 再记录一些含有os模块的类
site._Printer
,warnings.catch_warnings
1 |
|
26.inget 1
1 |
|
27.fileinclude 1
F12查看源码,需要用Cookie传入language值并且添加.php后缀,直接传入flag没有显示猜测在注释里,
1 |
|
28. mfw 3
搜索发现需要扫目录,Dirsearch出了/.git 进一步搜索发现是git源码泄露,使用githack获取源码
1 |
|
flag.php中没有flag(哭)
查看index.php 有assert()可以rce
通过’)闭合strpos 且注释后面的 .php','..')===false...
可以RCE
1 |
|
29.ics-05 3
Fuzz了一下sql,xss,ssti都不是
长得像文件包含,但是用php://input没反应
包含下index.php看看源码
1 |
|
只有一个preg_replace函数能用,bing一下
preg_replace 函数使用 /e 模式,导致代码执行问题 成功与sub匹配会执行replacement
1 |
|
30.tornado 3
提示:flag in /fllllllllllllag 以及 tornado render模板注入且hash加密方式为md5(cookie_secret+md5(filename))
则我们还需要获取到cookie_secret
查找注入点为Msg
- 在tornado模板中,存在一些可以访问的快速对象,例如 { { escape(handler.settings[“cookie”]) } }
大概存在handler->RequestHandler RequestHandler.settings->self.application.settings
handler.settings->RequestHandler.application.settings
所以可在handler.settings中获取环境变量,包含有cookie_secret
1 |
|
31. bug 5
进入页面是一个登录框,随便输入提示用户不存在,尝试登录admin账号失败,先注册一下
选中manage模块提示不是admin
用Bp抓包发现Cookie中的user是简单的md5(UID:username),但伪造后依然不通过
查看其他模块中还有个修改密码模块抓包后还是没有可操作的地方,记得主页面还有个忘记密码模块
好像出现了可以进行覆盖admin的地方,修改成功,登录成功
再次进入Manage模块提示ip不允许 用XXF伪造后可访问manage,提示:
根据模块名猜测do为upload或者read啥的,确实可以upload
php后缀被过滤,但php4,5可用, 但对php标签进行了检测 ,可用其他风格绕过
1 |
|
MISC
1.this_is_flag 2
样例即是flag
2.pdf 3
打开是一张图片,然后看十六进制和binwalk都没什么异常
猜测图片把flag盖着了,搜了一下可以直接选中图片后的flag或者CTRL+F搜一下,pdftotext也可以将pdf to text
3.如来十三掌 3
一眼禅语
新佛曰解不出来,需要旧版的佛曰才能翻译
1 |
|
翻了下工具箱全部试了下解密方式都看不太出来,翻了眼题面有个13就试试rot13确实可以解
1 |
|
但因为对base64串的特征不太熟一下没看出来解出来是base64串
4.give_you_flag 4
GIF图里有个二维码,但是太快了,所以使用Stegsolve逐帧看
发现二维码缺了三个识别角,进行补全后可以扫描
1 |
|
5.坚持60s 4
搜了下jar misc,发现jar文件可以用jar-gui看,查看Jar源码就找到flag了,但是感觉正常的不是这么做的呢
6.gif 4
文件夹里只有黑白黑白的jpg,二进制?搜一下还真是
1 |
|
Re
1.insanity
IDA 打开即得
Crypto
1.base64
解码
2.幂数加密
大概是用2的0,1,2,3,4,5次幂的和(32个)表示26个字母
可以分出以下组
1 |
|
1 |
|