前面已经总结过一些有关黑客技术的文章,怎么说呢,我既算不是一个黑客,也算不上是一个红客,只是一个喜欢相关网络技术的新人而已。所以要学的东西还有很多,我也愿把好的东西拿出来与同志们分享。今天是实习的时候得到了一点比较好的资源,就此总结一下相关知识。
+=================================================================================================+
一、MSSQL注入
ACCESS数据库最多只支持100M的数据库和四个客户端连接,这在流量数据量大的网站中无法胜任,这方面MSSQL无限制.MSSQL还支持多种扩展存诸,速度也比ACCESS快很多,下表中有说细说明
内 容 |
Access特征 |
MS SQL特征 |
版本 |
桌面版 |
网络版,可支持跨界的集团公司异地使用数据库的要求 |
节点 |
一人工作,要锁定,其他人无法使用 |
节点多,支持多重路由器 |
管理权限 |
否 |
管理权限划分细致,对内安全性高 |
防黑客能力 |
否 |
数据库划分细致,对外防黑客能力高 |
并发处理能力 |
100人或稍多 |
同时支持万人在线提交,在其它硬件例如网速等条件匹配的情况下可完全实现 |
导出XML格式 |
可以,需要单作程序 |
可导出成为XML格式,与Oracle数据库和DB2数据库通用,减少开发成本 |
数据处理能力 |
一般 |
快 |
是否被优化过 |
否 |
是 |
从一个黑客的视角看,ACCESS和MSSQL的不同:
1)ACCESS库:攻击方法有限,能采用的通常是暴库后下载数据库或数据库插入木马,有了注点也只能猜默认的表名、字段名,如被改名则无法猜出,如果猜中则可以得到密码。得到密码破解进后台,无法通过注点执行命令,不能指派用户权限
2)MSSQL数据库:可以通过注点到得任何表名列名及内容,如果权限为DB_ONER,知道WEB路径可以直接通过各种备份数据库方法得到WEBSEHLL,如果是SQ 权限可直接执行命令,还能UPDATA改管理员的密码,或是数据库挂马等等多种攻击手段,能指派用户权限,通常分为SA,DB_ONWER,PUBLIC
MSSQL的注入检测和ACCESS一样能用' 1=1 1=2 检测,,返回页面与正常页面不同,1=1 1=2 返回页面不同,即为
注点 and 1=(select @@VERSION) 可以看到详细的数据库信息。
and 1=(SELECT IS_SRVROLEMEMBER('sysadmin'));--看权限是不是SA,如果是可以直接执行命令,添加管理员
and 1=(SELECT IS_MEMBER('db_owner'));-- 看权限是不是DB_ONWER,可以备分得到WEBSEHLL
如果不是以上两种,那就是public只能查询数据库, 服务器目录。
二、利用MSSQL渗透内网
在MSSQL的DB-OWNER权限下备份得到WEBHLLL ,这个是目前最常用的入侵手段,成功率高方法简单,但是在入侵大型的网站中,这种方法受到网络结构的限制往往不能发挥作用。大型网站中,WEB服务器和数据库服务器是两台机器,WEB服务器上没有数据库、数据库服务器上没有WEB,我们再按以前的思路进行入侵就不行了。
假设现在有一注入点,我们通过它备分一个WEBSEHLL 通过数据库操作的结果只能备份一个木马到数据库的服务器上,如上所述服务器上并没有WEB服务程序,备分后是无法通过IE连接上的,那么可以换个思路WEB服务器和数据库服务器之间是存在必然联系的,否则WEB无法调用数据库服务器上的资料.这个连系的核心叫做"数据库链接文件"
一般文件名为CONN.ASP,CONN.PHP等等。这个文件里保存着与数据库那台服务器进行连接的核心数据.其中包括数据库服务器的IP地址,数据库名以及连接帐号。换句话说,当取得到WEBSEHLL后,发现数据库并不在这台服务器上.先尝试找到数据库连结文件,得到连接的数据库服务器的连接IP,数据库名和帐号,再通过WEBSHELL内置的数据库连接功能,进行相关的操作。
当权限是SA时,可以建系统管理员帐号或者数据库管理员帐号来在数据库链接文件中,通常都能找到类似的代码
str="provider=sqloledb;driver={SQL SERVER};Server=127.0.0.1;database=test;pwd=pctest; =sa;"
Serve对应数据库服务器IP地址
database 对应服务器数据库名称
pwd 对应MSSQL连接密码
uid 对应数据库连接用户名
再进入WEBSEHLL的数据库操作功能区,在相应的位置填入以上参数,对远程的数据库进行连接,连接上之后可以用
exec master.dbo.xp_cmdshell 'net user pc_system 111111 /add'
exec master.dbo.xp_cmdshell 'net localgroup administrators pc_system /add';
这两句建系统管理员帐号。
使用
exec sp_addlogin '123456','111111'
exec sp_addsrvrolemember '123456',sysadmin,建数据库管理员帐号 并加入管理员组 从而得到系统最高权限