WEB 签到题 查看源代码<input type="text" maxlength="3" name="pass"/>
提示输入更大的数,并限制了text的maxlength,F12修改html,删除maxlength部分.
简单的题 查看源代码,给出了部分php,审计。
1 2 3 4 5 if (isset ($_POST ['password' ])) { if (strcmp ($_POST ['password' ], $flag ) == 0 ) die ($flag ); else echo "密码不正确!" ;
strcmp可以直接用数组绕过,将password改为数组即可。
WEB100-2 提示?hint,随便尝试一下,?hint=1,显示了源码。
核心部分。
1 2 3 4 5 6 7 8 9 10 11 12 $KEY ='BDCTF:www.bluedon.com' ; include_once ("flag.php" ); $cookie = $_COOKIE ['BDCTF' ]; if (isset ($_GET ['hint' ])){ show_source (__FILE__ ); } elseif (unserialize ($cookie ) === "$KEY " ) { echo "$flag " ; }
将key的值序列化放在cookie的BDCTF变量中即可。
送大礼 访问flag.txt,解jsfuck得到
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 extract ($_GET ); if (isset ($bdctf )) { $content =trim (file_get_contents ($flag )); if ($bdctf ==$content ) { echo 'bdctf{**********}' ; } else { echo '这不是蓝盾的密码啊' ; } } }
变量覆盖漏洞。
蓝盾管理员 部分php源码
1 2 3 4 5 6 7 8 9 @$user = $_GET ["user" ]; @$file = $_GET ["file" ]; if (isset ($user )&&(file_get_contents ($user ,'r' )==="the user is bdadmin" )){ echo "hello bd-admin!<br>" ; include ($file ); }else { echo "you are not bd-admin ! " ; }
用php伪协议php://input
绕过file_get_contents($user,'r')==="the user is bdadmin"
。
然后可以直接用file变量的伪协议读取file.php
bluedon用户 与蓝盾管理员类似,不过读取的是class.php
1 2 3 4 5 6 7 8 9 10 11 <?php class Read { public $file ; public function __toString ( ) { if (isset ($this ->file)){ echo file_get_contents ($this ->file); } return "æåget flag" ; } } ?>
index.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 <?php @$user = $_GET ["user" ]; @$file = $_GET ["file" ]; @$pass = $_GET ["pass" ]; if (isset ($user )&&(file_get_contents ($user ,'r' )==="the user is bluedon" )){ echo "hello bluedon!<br>" ; if (preg_match ("/f1a9/" ,$file )){ exit (); }else { @include ($file ); $pass = unserialize ($pass ); echo $pass ; } }else { echo "you are not bluedon ! " ; } ?> <!-- $user = $_GET ["user" ];$file = $_GET ["file" ];$pass = $_GET ["pass" ];if (isset ($user )&&(file_get_contents ($user ,'r' )==="the user is bluedon" )){ echo "hello bluedon!<br>" ; include ($file ); }else { echo "you are not bluedon ! " ; } -->
不能直接读取f1a9,但是可以用反序列化读取。
O:4:"Read":1:{s:4:"file";s:57:"php://filter/read=convert.base64-encode/resource=f1a9.php";}
MISC 杂项全家桶 解压出一张损坏的png图片,16进制打开发现没有文件头,将文件头补全89 50 4E 47 0D 0A 1A 0A
,得到一张二维码,扫描二维码,得到工井大人夫王
。
当铺密码,解密得485376
对png图片分析,发现png图片还有一个rar的压缩包,里面是一个MP3,猜测是MP3Stego隐写,密码就是解出的数字。
decode.exe -X music.mp3 -P 485376
得到fx4qx0hj_4_cg{Wvf}
应该是栅栏和凯撒密码的结合,解栅栏密码fhgxj{4_Wq4vx_f0c}
,猜测前面是bdctf,用凯撒解密得到flag。
bdctf{4_Sm4rt_b0y}
Stega 像素隐藏 zip压缩包为伪加密,直接修改0400后面的为0000即可解压出图片。
图片没有隐藏内容,发现有透明框,修改图片的高度得到flag。