十一假期做西电的信安比赛(渗透关)

由于对jsunpackn的研究陷入了困境,正好在群上看到了西电有个信安比赛,所以就来做一下,换换心情。

主页是这里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()



  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值