十一假期做西电的信安比赛(渗透关)
2012-10-02 23:02
357 查看
由于对jsunpackn的研究陷入了困境,正好在群上看到了西电有个信安比赛,所以就来做一下,换换心情。
主页是这里https://csc.xdsec.org/,分为渗透,内核,破解,漏洞挖掘
其中渗透关比较简单,就先做一下
第一关:
注释里面有这些,应该是ascii转码一下得到 Key:f1rsTPa5skey
第二关:
key在cookie之中,同样ascii,转码后得decode(ZzBOZXhUZG8wcm==),这应该是Base64,再次解码得g0NexTdo0r
第三关:
修改网站语言为English Key:neWor1ds7
第四关:
修改cookie Key:we4kVer1fic4ti0n
第五关:
有个这个,把字典文件下载下来,试一试发现密码是private,得到Key:BruTeCr4cKeR
第六关:
这个提示,因为conn.inc是可以直接下载的,而conn.asp不行,地址是 config/conn.inc
下载到数据库后得到 key:Dat4ba4ed0wnlo4d3r
第七关:
开始得到这一串数字,根据特征是utf-7的加密方式,
使用linux下的iconv转码得到,访问该页面,却显示dont have permission
第八关:
直接给了一段SAM,让你破解,第一段应该是LM(lan Manager)的加密采用了DES加密方法,第二个是NT使用的加密,使用MD4加密
因为历史遗留问题,可能是兼容性之类的,两种密文都被保留了,LM加密算法比较弱,我们可以从他入手。
不过破解LM只能够获得前六位密码,而且不能区分大小写,这就导致了5位密码比7位密码还要强壮。
本地工具的话有SAMinside,在线破解的话在这个网站http://www.objectif-securite.ch/en/index.php
吧LM和NT密文都粘贴进去就可得到
第九关:
是一个后台入口,输入没有经过任何验证,并且给了SQL语句的提示
所以可以在username域,把后面的东西注释掉
这要构造输入就可以bypass,进入后台,要注意--后面需要跟空格,这是mysql的注释语法
第十关:
进入后台之后有一个注入,有一个文件上传,看来这就是最后两关了
先来看注入关,有一个输入框,但是get方式传参,在url中尝试注入,注入点特征如下
有错误回显,会虑过一些关键字,但是对大小写没有过滤,数据库为goal,表名为users,两个关键字段为username,password
直接使用union all语句爆出MD5密码,这里有一点,对于字符型的注入点可以用,注释--注释掉最后一个单引号
md5解密后是n1md4
这里再说一下,union和union all的区别是,union all部会去掉重复,union注入的特点是,把你想要的结果集,加在正常的结果集后面,
所以只对检索数据库并输出的一些注入点有效。
第十一关:
是一个上传文件的绕过,比较诡异,做法是抓包,然后修改包的上传文件文件名,再传一次,就可以了。
估计机制是这样,它使用了PHP上传文件的MIME文件类型来做过滤,而MIME文件类型的判断是在本地完成的,
所以通过改包可以绕过。
最后的Key:Up1o@Dth3fi1E
因为这次要用到修改http包的工具,和一些诡异注入点的注入工具,决定自己用python写一下,感觉相比之前java写得,简洁了不少
不过身为脚本语言,很多大小写,语法相对于java要容易出错的多,把一个提交http包的Demo发一下,注入也大同小异
主页是这里https://csc.xdsec.org/,分为渗透,内核,破解,漏洞挖掘
其中渗透关比较简单,就先做一下
第一关:
注释里面有这些,应该是ascii转码一下得到 Key:f1rsTPa5skey
<!--<p>以娱乐的心情比赛,从Basic开始...\4B\65\79\3A\66\31\72\73\54\50\61\35\73\6B\65\79</p>-->
第二关:
key在cookie之中,同样ascii,转码后得decode(ZzBOZXhUZG8wcm==),这应该是Base64,再次解码得g0NexTdo0r
decode%28ZzBOZXhUZG8wcm%3D%3D%29
第三关:
修改网站语言为English Key:neWor1ds7
第四关:
修改cookie Key:we4kVer1fic4ti0n
第五关:
有个这个,把字典文件下载下来,试一试发现密码是private,得到Key:BruTeCr4cKeR
<!--<a href="passlist.zip">字典文件,怎么又让你看到了?- -!</a>-->
第六关:
这个提示,因为conn.inc是可以直接下载的,而conn.asp不行,地址是 config/conn.inc
<!--tips:conn.inc-->下载完成之后得到数据库路径,不过其中包含#,#在url解析中会被当做定位符中断掉,换成%23就行了,
下载到数据库后得到 key:Dat4ba4ed0wnlo4d3r
第七关:
开始得到这一串数字,根据特征是utf-7的加密方式,
+ADwAcwBjAHIAaQBwAHQAPgB3AGkAbgBkAG8AdwAuAGwAbwBjAGEAdABpAG8AbgAuAGgAcgBlAGYAPQAiAHUAdABmAC0ANwAuAHAAaABwACIAPAAvAHMAYwByAGkAcAB0AD4-
使用linux下的iconv转码得到,访问该页面,却显示dont have permission
<script>window.location.href="utf-7.php"</script>根据提示,吧referer: http://xdsec.org/加到http头里面就可以了,这里可以用两个工具Fiddler ,burp,个人以为nc也可以,不过没有测试。
<!--Tip:Ref:http://xdsec.org/-->
第八关:
直接给了一段SAM,让你破解,第一段应该是LM(lan Manager)的加密采用了DES加密方法,第二个是NT使用的加密,使用MD4加密
因为历史遗留问题,可能是兼容性之类的,两种密文都被保留了,LM加密算法比较弱,我们可以从他入手。
不过破解LM只能够获得前六位密码,而且不能区分大小写,这就导致了5位密码比7位密码还要强壮。
h4cker:1004:C4FB857DAAF137F088BE239044A684C5:4708EEA5CCA17F195EE8EACA40153F5B:::
本地工具的话有SAMinside,在线破解的话在这个网站http://www.objectif-securite.ch/en/index.php
吧LM和NT密文都粘贴进去就可得到
第九关:
是一个后台入口,输入没有经过任何验证,并且给了SQL语句的提示
<!-- Bypass It.SELECT * FROM xxx WHERE xxx='user' AND xxx='pass';-->注意两点,password会先被MD5加密然后再放入SQL语句,所以在password域中写任何东西都是没有意义的
所以可以在username域,把后面的东西注释掉
这要构造输入就可以bypass,进入后台,要注意--后面需要跟空格,这是mysql的注释语法
admin'--进入后得到key:Byp4s5LoG1n
第十关:
进入后台之后有一个注入,有一个文件上传,看来这就是最后两关了
先来看注入关,有一个输入框,但是get方式传参,在url中尝试注入,注入点特征如下
有错误回显,会虑过一些关键字,但是对大小写没有过滤,数据库为goal,表名为users,两个关键字段为username,password
直接使用union all语句爆出MD5密码,这里有一点,对于字符型的注入点可以用,注释--注释掉最后一个单引号
http://test.xdsec.org/goal/vulnerabilities/sqli/?id=1'%20Union%20all%20Select%20user,password%20From%20users%20--%20&Submit=Submit#
md5解密后是n1md4
这里再说一下,union和union all的区别是,union all部会去掉重复,union注入的特点是,把你想要的结果集,加在正常的结果集后面,
所以只对检索数据库并输出的一些注入点有效。
第十一关:
是一个上传文件的绕过,比较诡异,做法是抓包,然后修改包的上传文件文件名,再传一次,就可以了。
估计机制是这样,它使用了PHP上传文件的MIME文件类型来做过滤,而MIME文件类型的判断是在本地完成的,
所以通过改包可以绕过。
最后的Key:Up1o@Dth3fi1E
因为这次要用到修改http包的工具,和一些诡异注入点的注入工具,决定自己用python写一下,感觉相比之前java写得,简洁了不少
不过身为脚本语言,很多大小写,语法相对于java要容易出错的多,把一个提交http包的Demo发一下,注入也大同小异
import httplib file = open("test.txt") headers = {} for line in file: line=line.replace("\n","") print line name=line[:line.find(":")] value=line[line.find(":")+1:] headers[name]=value #print headers.keys() #print headers.values() conn = httplib.HTTPConnection("test.xdsec.org", 80) conn.request('POST','/goal/vulnerabilities/upload',None,headers) '''conn.request('GET', '/goal/vulnerabilities/upload', headers = {"Host": "test.xdsec.org", "User-Agent": "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.89 Safari/537.1", "Accept": "text/plain", "Cookie": "security=low; PHPSESSID=15200f29316fee5fe9260e1e540b4763"}) ''' #conn.request('GET','/') res = conn.getresponse() print res.status,res.reason #print r1.read()
相关文章推荐
- 十一假期做西电的信安比赛(内核关linux部分)
- 西电网络攻防大赛--渗透测试第五题
- 我的十一假期
- 我的十一假期(2011上半年程序员总结)
- 西电网络攻防大赛--渗透测试第八题
- Kali进行web渗透笔记(十一)
- 十一假期怎么过
- 十一假期过后不愿上班 “上班焦虑症”
- 优雅的程序员这样度过十一假期
- 出门在外谨防上当 十一假期外出旅游安全防骗手册
- 2012西电网络攻防大赛(XDCSC2012)网络渗透0x009通关方案
- 十一假期博客活动 好礼不断惊喜连连
- 想做个调查,大家十一假期都是怎么过的呢?
- 想做个调查,大家十一假期都是怎么过的呢?
- 2009的十一假期注定是孤寂的
- 这个十一假期真不错
- 写在十一假期结束之前
- 优雅的程序员这样度过十一假期
- 十一假期前一定要看的一篇文