[SWPUCTF 2021 新生赛]gift_F12
1.打开环境后,这里说要900多天会有flag,这是不可能的
2.f12查看源码,然后在html中查找flag (在最上方的栏目中,或者按ctrl+f)
[SWPUCTF 2021 新生赛]jicao
1.打开环境是一段php代码
2.上面的代码说包含了一个flag.php文件,设定了一个POST请求id和GET请求json,语句会对GET请求的数据进行json解码(post不会),如果id和json变量的值都等于设定字符串,输出flag
json字符串,形如:json={"aa":"bb"},其中aa是键,bb是值,那题目的意思就是json={"x":"wllm"}
[SWPUCTF 2021 新生赛]easy_md5
1.打开环境,一段php代码,解题之道就在其中
2.意思是包含有一个flag.php的文件,然后 get传参name,post传参password,当name和password的值不等,但是他们的md5值相等时,就会输出flag,否则输出wrong
要找两个相同的md5,但值不同的数据很费时间,我们可以绕过,有两个方法
(1)md5绕过(数组绕过),md5不能加密数组,在加密数组的时候会返回NULL,如果设置没有判断变量类型或内容,就行得通
(2)0e绕过(科学记数法)以0e+数字类型的md5值在php进行科学计数法时会将其转化成0,也就是两个数的md5加密后的值以0e开头就可以绕过。
eg:
240610708:0e462097431906509019562988736854
QLTHNDT:0e405967825401955372549139051580
QNKCDZO:0e830400451993494058024219903391
PJNPDWY:0e291529052894702774557631701704
NWWKITQ:0e763082070976038347657360817689
NOOPCJF:0e818888003657176127862245791911
MMHUWUV:0e701732711630150438129209816536
MAUXXQC:0e478478466848439040434801845361
[SWPUCTF 2021 新生赛]include
1.打开环境说叫我们传一个file试试,那就试试,说flag在flag.php中。
2.这样的话就是php伪协议了,写个payload,filter可以读取flag.php中的信息
url ?file=php://filter/read=convert.base64-encode/resource=flag.php
3.得到一串编码,拿去解码,得到flag
[SWPUCTF 2021 新生赛]PseudoProtocols
1. 看到有提示说叫我们找到hint.php,同时在url处有一个参数。
2.利用php伪协议中的filter获取 hint.php文件的内容,得到一个base64编码
3.解码,有两个结果。有一个好像是地址,访问一下
4.得到一个新的页面,有php代码,上面说最大执行时间180s,包含有一个flag.php文件,使用get传参,当参数a的值等于I want flag 时输出success和flag
5.再次使用伪协议,这里有两种方法
(1)php://input协议,url: ?a=php://input, post传参: I want flag
注意:此方法需要条件,即开启allow_url_include=On
(2)data url: ?a=data://text/plain,i want flag
[SWPUCTF 2022 新生赛]ez_ez_php
1.有段php代码,禁用了php的错误报告,get传参包括file,并检查文件头是不是php,file
参数的前三个字符是 "php",代码将包含该参数指定的文件,还有一个注释说存在flag.php的文件
2.使用php伪协议,构造payload,得到一个base64编码http://node5.anna.nssctf.cn:25603/?file=php://filter/read=convert.base64-encode/resource=flag.php
3.解码得,上面说flag不在这里,试试伪协议,真正的flag在flag里。
4.修改upload,又得到一个编码
5.解码得到flag
[鹏城杯 2022]简单包含
1.打开环境,上面说通过post请求flag,注释还说了flag的具体路径。
2.先用php伪协议看看,上面提示说有waf
3.访问index.php页面,返回一串base64
4.解码得到新的
5.得到的新内容说: POST 请求体小于 800 个字符(waf),并且 $path
包含 "flag",则输出 "nssctf waf!",用正则校验路径是否含有flag
这里绕过的方法就是让字符超过800,接上伪协议,就可以得到flag