SQL注入渗透某 *** 安全公司的网站全过程

hacker5年前黑客文章1034

笔者一直都有经常性地到一些安全方面的网站瞎逛的习惯的,最近因为一次机缘巧合之下通过链接来到广州某个颇有名气的 *** 安全公司的网站。说实在的,这个网站好象挺多元化的,提供软件下载之余,还有自己的论坛(嘿嘿,界面做得还真不赖嘛,不知道安全性如何呢?)。出于对其安全操守的好奇,小神决定义务为其做个的初步的“安全渗透测试”。开始时只是拿一些综合性的 *** 漏洞扫描工具(X-scan3.0、Nmap、Retina等等)进行信息扫描,然后做个结果筛选,结果只查到对方开了TCP80端口(也就是说他们的服务器只提供了正常的HTTP服务),且无任何典型的漏洞....没戏了,对方毕竟还是一间有些知名度的企业嘛(因为这篇文章的重点并不在此,所以用 *** 漏洞扫描器作信息扫描这个步骤我就不在这里多作说明了)。就这样放弃了吗?没那么容易...恰好小神最近在整理SQL Injection(SQL注入攻击)方面的资料,既然现在有机会就再“勉为其难”地帮它测试一下吧:P



首先是下载系统,随便抽一个工具的下载地址:http://该安全公司的网址/某目录/download/open.asp?id=3444

------------------------------------------------------------------------------------------

附录:这里笔者用中文代替了某些敏感信息,还请各位见谅哦。

------------------------------------------------------------------------------------------

http://该安全公司的网址/某目录/download/open.asp?id=3444'先测试一下对方有没有过滤'(单引号)...



------------------------------------------------------------------------------------------

提示:

问:如何确认一个网站有SQL注入缺陷呢?

答:首先先加入某些特殊的字符标记,输入如:

hi' or 1=1--

寻找一些登陆页面,在其登陆ID与密码输入处,或URL中输入:

- Login: hi' or 1=1--

- Pass: hi' or 1=1--

- http://duck/index.asp?id=hi' or 1=1--

如果想以‘隐藏’的方式进行此类测试,你可以把该HTML网页从网站上下载至本地硬盘,修改其隐藏

部分的值,如:

〈FORM action=http://duck/Search/search.asp method=post〉

〈input type=hidden name=A value="hi' or 1=1--"〉

〈/FORM〉

如果阁下是幸运的话估计现在已经可以不需要帐号与密码而‘成功登陆’了。

------------------------------------------------------------------------------------------

再试试下面的url,看看能否返回正常的页面...

http://该安全公司的网址/某目录/download/open.asp?id=3444"

http://该安全公司的网址/某目录/download/open.asp?id=3444' or 1=1--

http://该安全公司的网址/某目录/download/open.asp?id=3444" or 1=1--

http://该安全公司的网址/某目录/download/open.asp?id=3444' or 'a'='a

http://该安全公司的网址/某目录/download/open.asp?id=3444" or "a"="a

------------------------------------------------------------------------------------------

提示:

问:为什么要特意使用' or 1=1--来做测试呢?

答:让我们来看看其他例子中使用'or 1=1--的重要性吧。有别于正常的登陆方式,使用这样的登陆方式可能可以得到正常登陆中不能得到的某些特殊信息。用一个链接中得到的ASP页来打比方:

http://duck/index.asp?category=food

在上面这条URL中,'category'是一个变量名,而'food'是赋予该变量的值。为了做到这些(链接成功),这个ASP必须包含以下相关的代码(下面也是我们为了演示这个实验所写的代码):

v_cat = request("category")

sqlstr="SELECT * FROM product WHERE PCategory='" & v_cat & "'"

set rs=conn.execute(sqlstr)

正如我们所看到的,变量值将会预先处理然后赋值于'v_cat',也就是说该SQL语句将会变为:

SELECT * FROM product WHERE PCategory='food'

这个请求将会返回通过WHERE条件比较后得到的结果,在这个例子中也就是'food'了。现在设想一下如果我们把该URL改成这样的话:

http://duck/index.asp?category=food' or 1=1--

现在我们的变量v_cat的值就等同于"food' or 1=1--"了,现在如果我们要重新代入那条SQL请求的话,那条SQL请求将会是:SELECT * FROM product WHERE PCategory='food' or 1=1--'

现在这个请求将会从product表中选取每一条信息而并不会去理会PCategory是否等于'food'。至于结尾部分的那两条'--'(破折号)则用于‘告诉’MS SQL SERVER忽略结尾最后的那个'(单引号)。有的时候也可以使用'#'(井号)来代替'--'(双破折号)在这里的用法。无论如何,如果对方不是一台SQL服务器(这里指的是MS SQL SERVER),或者你不能使用简单的 *** 去忽略最后的那个单引号的话,你可以尝试:

' or 'a'='a

这样的话整个SQL请求将会变为:SELECT * FROM product WHERE PCategory='food' or 'a'='a'它也会返回相同的结果。根据实际情况,SQL注入请求是可以有多种动态变化的可能性的:

' or 1=1--

" or 1=1--

or 1=1--

' or 'a'='a

" or "a"="a

') or ('a'='a

------------------------------------------------------------------------------------------

都是返回“HTTP 500 - 内部服务器错误”,看来是又失败了,不怕,我们还有希望...此时的希望只

能全部寄托在论坛上了...(下图)



循序渐进,首先找来一条帖子的url(这一步笔者挑了:http://该安全公司的网址/论坛目录/list.asp

?ltid=14这条URL)重复刚刚的行为:

http://该安全公司的网址/论坛目录/list.asp?ltid=14'

http://该安全公司的网址/论坛目录/list.asp?ltid=14"

http://该安全公司的网址/论坛目录/list.asp?ltid=14' or 1=1--

http://该安全公司的网址/论坛目录/list.asp?ltid=14" or 1=1--

http://该安全公司的网址/论坛目录/list.asp?ltid=14' or 'a'='a

http://该安全公司的网址/论坛目录/list.asp?ltid=14" or "a"="a

不过看来还是在吃白果...(如下图所示)



除了地址栏,不要忘了还有论坛首页的登陆框:



在“用户名:”区域中输入:

网***' or 1=1--

然后在“密码:”区域中随便输入几个密码看看吧:P(得到下图)

------------------------------------------------------------------------------------------

附录:“网***”为我们在论坛首页中看到的那个版主帐号。

------------------------------------------------------------------------------------------



还是不行,试试在密码区域进行注入攻击吧...具体操作:

在“用户名:”中输入:

“网***”

然后在“密码:”中输入:

' or 1=1--

(提交后得到下图)



fail...再用:

' or 1=1--

" or 1=1--

or 1=1--

' or 'a'='a

" or "a"="a

切换了几次,还是不行,看来真的是“坚不可摧”了...“风继续吹,不忍远离...”小神的MP3里哼着‘哥哥’张国荣的歌,难道就这样离开吗?到论坛的首页里再逛一圈吧....一扫眼,还真道灵光,注意一下论坛登陆区域上方的小链接,看到了吧?第三条链接是什么呢?



单击后跳出如下图所示的登陆窗口:



首先在“论坛:”这一拦选中相应的版面(这里笔者挑了之一个版面“安全工具”),然后再重新尝试一下:

帐号: 网***' or 1=1--

密码: 任意密码



不行,再试试:

帐号: 网***

密码: ' or 1=1--

......

......

小神的手颤了一下,只因“有颜色的界面”出来了:





开始时以为是假象,连忙点击“进入后台>>>”...



这次看来是真的了,点击其中一条帖子再测试一下:



(看到了吧?有“删除”按钮了也...其实我们可以做的还不只这些...PS:小神可是个好孩子哦^_^)写到这里,也算是有个交代了吧?!^@@^

整篇文章的主旨也不过就是介绍了如何简单地利用SQL注入攻击渗透论坛吧,其实现在再谈SQL注入也是老生常谈了,但想不到连知名的 *** 安全公司也有这样的漏洞,归根结底就是人们对安全意识的不重视而引起的,这篇文章告诉了我们:不要忽视运作中的一些小细节。

标签: 黑客技术

相关文章

如何避免自己的电脑成为“肉鸡”_避免自己的电脑成为肉鸡的方法

如何避免自己的电脑成为“肉鸡”的几种方法,大家一起分享。 1.关闭高危端口: 第一步,点击“开始”菜单/设置/控制面板/管理工具,双击打开“本地安全策略”,选中“IP 安全策略,在本地...

Nmap的作用和使用方法

Nmap的作用和使用方法

Nmap坚信大伙儿也不生疏了,今日刻意梳理成浅显易懂的Nmap的作用和使用方法,有必须的盆友请个人收藏,或是储存到自身的手机上和电脑都能够。   一、Nmap的英语的语法 nmap [sc...

Nmap是用以端口扫描器,服务项目检验,乃至是漏洞检测等多种

Nmap是用以端口扫描器,服务项目检验,乃至是漏洞检测等多种

Nmap是用以端口扫描器,服务项目检验,乃至是漏洞检测等多种多样作用的强劲专用工具。Nmap从新手入门到高級遮盖了很多基本的定义和指令,在本文的第二一部分,我将谈及Nmap一些高級的技术性。 &nb...

妻子出走丈夫找“黑客”定位

昨天13:42,新浪网友@翠苑派出所 发微博:新晋奶爸报案,为了帮嗷嗷待哺的孩子找妈妈,他想尽办法,最后竟求助于网上的陌生人。陌生人称可以通过全球定位的网站找到妈妈,需要的只是妈妈的手机号和800...

专用工具完全免费使用方法

专用工具完全免费使用方法

什么叫Nessus? Nessus是大家都知道的漏洞扫描器之一,非常是Unix电脑操作系统。即便她们在2006年关掉了源码,并在2008年删除了完全免费版本号,该专用工具依然战胜了很多竞争者。该专用...

dSniff的典型性主要用途是啥?

dSniff的典型性主要用途是啥?

什么叫dSniff? dSniff是由Dug Song建立的数据流量剖析和登陆密码嗅探工具,用以分析各种各样运用协议书并获取有关数据信息。dsniff,mailsnarf,filesnarf,msg...