第四届红帽杯小记
MISC:
签到
1、附件下下来是一个名为EBCDIC的文件,打开后看不懂
上网查到,EBCDIC为一种较为古老的编码方式,最初是对着百科的EBCDIC表一个个写下来的,写完提交还是会有错。
后发现010支持直接解码。
WEB:
find_it
题目可以扫描,找到robots.txt
随后提示你需要访问1ndexx.php。
访问1ndexx.php后是空白的。
访问备份文件,这里再复习一下备份文件。
.rar .zip .7z .tar.gz .bak .txt .old .temp .tmp 等等
http://eci2zefc95c45rhg0wuefre.cloudeci1.ichunqiu.com/.1ndexx.php.swp
这里还学到一个之前很少接触的view-source:协议
用view-source:直接看页面源码,现在只有chrome和火狐支持。
回显源码为:
<?php $link = mysql_connect('localhost', 'root'); ?> <html> <head> <title>Hello worldd!</title> <style> body { background-color: white; text-align: center; padding: 50px; font-family: "Open Sans","Helvetica Neue",Helvetica,Arial,sans-serif; } #logo { margin-bottom: 40px; } </style> </head> <body> <img id="logo" src="logo.png" /> <h1><?php echo "Hello My freind!"; ?></h1> <?php if($link) { ?> <h2>I Can't view my php files?!</h2> <?php } else { ?> <h2>MySQL Server version: <?php echo mysql_get_server_info(); ?></h2> <?php } ?> </body> </html> <?php #Really easy... $file=fopen("flag.php","r") or die("Unable 2 open!"); $I_know_you_wanna_but_i_will_not_give_you_hhh = fread($file,filesize("flag.php")); $hack=fopen("hack.php","w") or die("Unable 2 open"); $a=$_GET['code']; if(preg_match('/system|eval|exec|base|compress|chr|ord|str|replace|pack|assert|preg|replace|create|function|call|\~|\^|\`|flag|cat|tac|more|tail|echo|require|include|proc|open|read|shell|file|put|get|contents|dir|link|dl|var|dump/',$a)){ die("you die"); } if(strlen($a)>33){ die("nonono."); } fwrite($hack,$a); fwrite($hack,$I_know_you_wanna_but_i_will_not_give_you_hhh); fclose($file); fclose($hack);
分析源码,题目存在flag.php并且已经通过I_know_you_wanna_but_i_will_not_give_you_hhh读取文件内容。
存在hack.php,并且支持GET方式传入a的值。
传入的a有经过过滤、判断长度等。
随后将a写入hack.php
但是这题有非预期解法,不需要想办法绕过题目限制
直接/index.php?code=
WebsiteManger
题目为一登录框
查看源码后发现登录框内图片格式为image.php?id=1
此处存在sql盲注,利用布尔盲注脚本。
看大佬的WP,随后是利用伪协议file://去ssrf读文件
file:///flag