驱动管家:安全、高效、精准的专业驱动下载站!

php漏洞是怎么形成的?如何构造sql注入语句?

2018-03-06 09:49:32责编:llp   来源:驱动管家     人气:

今天我要给大家讲解的是一个非常NB的入侵过程,我自己觉得非常的精彩,里面包含了非常多的知识点,这对与完全不懂php的朋友一样能够读懂,并且按照里面的技术自己来进行入侵类似的网站,并且能够得到非常好的效果。

现在SQL注入漏洞满地揭是,并且开发出很多优秀的工具例如NBSI,和CASI等等。这对于我们这样的菜鸟来说非常好了,因为完全避免了我们自己手动来一点点的猜测了,大大的提高了入侵率。。好了废话不多说直接进入我们的文章,来一次梦幻之旅,相信你再这里一定能够找到属于你自己的东西。

一.基础知识

首先我还是罗嗦一句php漏洞的形成的基本的原理,很多人认为在PHP MYSQL下注入一定要用到单引号,或者是没有办法像MSSQL那样可以使用 “declare @a sysname select @a= exec master.dbo.xp_cmdshell @a”这类的命令来消除引号,其实这个是大家对注入的一种误解或这说是对注入认识上的一种误区。

php漏洞是怎么形成的?如何构造sql注入语句?

为什么呢?因为不管在什么语言里,在引号(包括单双)里,所有字符串均是常量,即使是dir这样的命令,也紧紧是字符串而已,并不能当做命令执行,除非是这样写的代码:

$command = "dir c:\";

system($command);

否则仅仅只是字符串,当然,我们所说的命令不单指系统命令,我们这里说的是SQL语句,要让我们构造的SQL语句正常执行,就不能让我们的语句变成字符串,那么什么情况下会用单引号?什么时候不用呢?看看下面两句SQL语句:

①SELECT * FROM article WHERE articleid=$id

②SELECT * FROM article WHERE articleid=$id

两种写法在各种程序中都很普遍,但安全性是不同的,第一句由于把变量$id放在一对单引号中,这样使得我们所提交的变量都变成了字符串,即使包含了正确的SQL语句,也不会正常执行,而第二句不同,由于没有把变量放进单引号中,那我们所提交的一切,只要包含空格,那空格后的变量都会作为SQL语句执行,我们针对两个句子分别提交两个成功注入的畸形语句,来看看不同之处。

① 指定变量$id为:

1 and 1=2 union select * from user where userid=1/*

此时整个SQL语句变为:

SELECT * FROM article WHERE articleid=1 and 1=2 union select * from user where userid=1/*

②指定变量$id为:

1 and 1=2 union select * from user where userid=1

此时整个SQL语句变为:

SELECT * FROM article WHERE articleid=1 and 1=2 union select * from user where userid=1

看出来了吗?由于第一句有单引号,我们必须先闭合前面的单引号,这样才能使后面的语句作为SQL执行,并要注释掉后面原SQL语句中的后面的单引号,这样才可以成功注入,如果php.ini中magic_quotes_gpc设置为on或者变量前使用了addslashes()函数,我们的攻击就会化为乌有,但第二句没有用引号包含变量,那我们也不用考虑去闭合、注释,直接提交就OK了。

知道原理了,我们就可以很容易的来入侵网站了,今天我们的目标是http://www.ycxljy.com/西陵区教育信息网,貌似看起来做的还挺全面的,如图1所视,但是不知道安全性如何呢?我大概的看了一下新闻,http://www.ycxljy.com/show.php?id=1742从地址格式上来看是PHP的,我很习惯的在1742后面输入了一个’,现在成了职业病了,结果却大跌眼镜,如图二所视,报错了,而且直接把web的路径都给暴露出来了,路径为F:\xljyxxw\show.php,有了这个东东我们下面的事就很好办了,无非就是构造语句了,我们接着输入and 1=1, and 1=2测试出有php注入漏洞。

下面详细介绍一下我们要用到的一个mysql的函数load_file(),因为很多东西都用的到这个函数。我们知道,在SQL语句中,可以使用各种 MySQL内置的函数,经常使用的就是DATABASE()、USER()、SYSTEM_USER()、SESSION_USER()、 CURRENT_USER()这些函数来获取一些系统的信息,还有一个应用得比较多的函数,就是load_file(),该函数的作用是读入文件,并将文件内容作为一个字符串返回。

看到这里,应该可以想到我们可以做什么了,就是读取一些机密文件,但是也是有条件限制的:

· 欲读取文件必须在服· 务器上

· 必须指· 定文件完整的路径

· 必须有权限读取并且文件必须完全可读

· 欲读取文件必须小于 max_allowed_packet

如果该文件不存在,或因为上面的任一原因而不能被读出,函数返回空。比较难满足的就是权限,在windows下,如果NTFS设置得当,是不能读取相关的文件的,当遇到只有administrators才能访问的文件,users就别想load_file出来。

在实际的注入中,我们有两个难点需要解决:

· 绝对物理路径

· 构造有效的畸形语句

第一个绝对物理路径我们已经解决了,构造有效的语句就是小意思了。

二.构造SQL注入语句

php注入与asp注入还是有区别的,我们要进行的是跨表查询要用到UNION.UNION是连接两条SQL语句,UNION后面查选的字段数量、字段类型都应该与前面SELECT一样.通俗点说如果查寻对的话就出现正常的页面.接着注入http://www.ycxljy.com/show.php?id=1742 and 1=2 union select 1,2,3,4,5,6,7,8,9,10/*出现的是错误的页面.说明还没有找对字段.不停的改变select后面的数字,当数字改变为19候出现了正常的页面如图三,我们直接读取用户和密码,经过N多测试终于找到了我就直接把地址给出http://www.ycxljy.com/show.php?id=1742 and 1=2 union select 1,username,3,4,5,password,7,8,9,10 from user/*如图4,得到了用户名是admin007,密码是我是中国人。。。。真变态啊。下面我们直接进入后台http://www.ycxljy.com/admin/ 然后输入我们得到的用户和密码,呵呵登陆成功如图5。我们点击添加资料,呵呵出现了一个可以上传的地方如图6,我们直接把我们的php上传我以为到这里入侵就结束了,但是结果往往不是那么简单的,我们得到了失败的提示如图7到这里看来这条路走不通了,我们继续走load_file()的道路吧。

三.另外的思路

看来后台是没有什么可以利用的了,我们还是用我们以前介绍的load_file()来入侵吧,我们构造语句。因为从暴错的路径上来看是windows的,但是具体是什么版本到现在我还没有弄清楚,我们下面来读取c:\boot.ini文件就可以得到windows操作系统的版本了,具体的构造语句如下http://www.ycxljy.com/show.php?id=1742 and 1=2 union select 1,2,3,4,5,load_file(char(99,58,92,98,111,111,116,46,105,110,105)),7,8,9,10/*

如图8得到了windows的操作系统为Windows Server 2003, Enterprise的,下面我们就不用手动的方法了,相信菜鸟朋友也不会看清楚,我直接用CASI4.0来进行下面的操作,输入有漏洞的地址,然后点 ScanNum如图9,我们点CASI的暴代码按钮,我们在目标文件绝对路径中输入我们得到的路径F:\xljyxxw\show.php,插入位置选择 9,如图10我们得到了show.php的源代码,顺藤摸瓜看代码最后在F:\xljyxxw\bbs\admin\config.php中找到了 root的密码为junly608,但是用Mysql连接的时候说错误,估计防火墙过滤了。我们继续用CASI的得到webshell功能,结果也没有得到webshell,现在入侵一切进入了一个无底的黑洞了。暂时没有了思路,和CnhCerKF聊了半天,也没有找到好办法。一个小时的就这样过去了,算了陪老婆睡觉吧。也许明天就能有思路了。

四.最后的思路

没办法,继续用admin007密码我是中国人登陆到后台看了一下,我上次没有看到可以上传图片的,我也试了一下用php gif的方法,也失败了。我无意的看到了上传的目录是img下。我就输入http://www.ycxljy.com/img/结果出呼了我的意料,如图10,我晕原来是目录设置错误了,可以读取img的目录下的文件,我仔细找了半天,我靠竟然有以外收获,我说我以前的后台不能上传文件呢,原来早就有人捷足先登了,如图11,有人上传了okphp.php的文件,到这里思路就清楚了,我们直接输入http://www.ycxljy.com/img/okphp.php结果需要密码,但是没关系我们可以读取okphp.php的文件拿到密码不就可以登陆了嘛?okphp.php的具体路径是F:\xljyxxw\img\ okphp.php,如图12,我们已经得到了源文件,我靠,结果却又让我失望了,为什么,你一次一次的给我希望又一次一次的摧残我,原来是源文件加密了,这可如何是好啊?没办法了,因为我虽然懂PHP脚本但是还没有自己解过密,我自己也没有当真,就没有当回事,直接把这个东西发到了www.chinaunix.com上面,让他们来解吧,果然不到20分钟的时间就有人回复了,还真快,告诉我如何解密,原来这么简单,都怪我太大意了,如图13我们已经知道如何解了,我们直接就把源代码输入到Zend里面,然后在我自己构件的apache php mysql平台上执行就得到了如图14的结果。我点击右键查看源代码,呵呵,我们需要的结果都出来了,如图15。我们赶紧输入密码dhyhack,如图16登陆成功.呵呵终于经过艰难万苦得到了webshell。

具体的提权交给大家去做吧。我们总结一下我们的思路首先找到PHP注入点->登陆后台->上传PHPWEBshell结果失败了->利用load_file()函数读取一些重要的文件->找到服务器目录设置不严格的权限得到了别的黑客的后门->解密以后得到密码->得到webshell,看着非常简单,其实非常的难,一步一步的衔接没有我文章写的那么简单,我是详细分析了很长时间才最终的得到webshell的,我的意思不是说我多牛X,我说的就是入侵就像罗积木只有一点点的积累才能最终得到你所想要的结果。

  • 黑客网吧黑人 黑客是怎么入侵网吧管理系统的?

    黑客网吧黑人 黑客是怎么入侵网吧管理系统的?

    从你这里真是学到不少东西呀,今天我去网吧和同事打了会儿游戏,我从来不在网吧上用QQ,总觉得网吧很危险,里面到全是木马。我知道很多人能够得到MM的QQ号,他们是怎么弄的?网吧上网能安全放心吗?你是不是也经

    详情2018-02-08 14:30:03责编:llp   来源:驱动管家     
  • 验证码破解有怎么样的机制?验证码破解实例

    验证码破解有怎么样的机制?验证码破解实例

      输入表单提交网站验证,验证成功后才能使用某项功能。不少网站为了防止用户利用机器人自动注册、登录、灌水,都采用了 验证码

    详情2018-01-14 16:04:52责编:llp   来源:驱动管家     
  • pplive网络电视有漏洞?activex漏洞挖掘的步骤

    pplive网络电视有漏洞?activex漏洞挖掘的步骤

    受影响系统:pplive 1 8beta2描述:ActiveX类型溢出,远程攻击者可能利用此漏洞在用户计算机上执行任意指令。来源:Bug Center TeamActiveX漏洞挖掘的步骤:1) 判断是否属于远程类型的ActiveX控件2) 获得该

    详情2018-01-26 13:30:43责编:llp   来源:驱动管家     
  • 新浪生活社区注入漏洞的危害 新浪生活社区注入漏洞证明

    新浪生活社区注入漏洞的危害 新浪生活社区注入漏洞证明

    注入漏洞存在地址为http: life sina com cn act cgi mother md?uid=1464029310其中该漏洞可以导致数据泄漏,其中泄漏的数据包括团购,优惠券、以及用户联系方式,smslog,团购商户、admin等数据。同时,团购的商

    详情2018-02-04 11:16:49责编:llp   来源:驱动管家     
  • web服务器的漏洞 web服务器的保护

    web服务器的漏洞 web服务器的保护

    Web安全分为两大类:· Web服务器的安全性(Web服务器本身安全和软件配置)。· Web应用程序的安全性(在Web服务器上运行的Java、 ActiveX、PHP、ASP代码的安全)。Web服务器面临的攻击Web服务器攻击利用Web服务器

    详情2018-01-08 19:52:37责编:llp   来源:驱动管家     
  •  linux防火墙怎么设置? 防火墙在linux系统上的应用

    linux防火墙怎么设置? 防火墙在linux系统上的应用

    iptables 这个指令, 如同以下用 man 查询所见, 它用来过滤封包和做NAT Network Address Translation(网路位址转译), 这个指令的应用很多, 可以做到很多网路上的应用 iptables - administration tool

    详情2018-01-04 08:58:02责编:llp   来源:驱动管家     
  • quicktime播放器存在缓冲区溢出漏洞怎么修复?

    quicktime播放器存在缓冲区溢出漏洞怎么修复?

    受影响系统:Apple QuickTime Player < 7 4不受影响系统:Apple QuickTime Player 7 4Apple QuickTime是一款非常流行的多媒体播放器。QuickTime在处理压缩的PICT图形时存在缓冲区溢出漏洞,如果用户受骗

    详情2018-01-28 11:40:20责编:llp   来源:驱动管家     
  • 破解密码有哪些高招?怎么加密才有保障?

    破解密码有哪些高招?怎么加密才有保障?

    加密和解密是一个永久的热点话题,什么样的加密才是安全的?怎样才能解开常用的密码?你是否已经意识到,在你每日朝夕相处的密码和保护中,已经有太多的不安全因素在困扰着自己?今天,笔者将带领大家一起走近破

    详情2018-02-03 14:25:03责编:llp   来源:驱动管家     
  • 管家婆软件的漏洞分析:该漏洞很容易被入侵

    管家婆软件的漏洞分析:该漏洞很容易被入侵

    管家婆搞活动的页面,选漂亮的财务MM和帅蝈蝈,获奖的出国旅游呀!!!俺向二师兄保证绝对木有看MM的手机号。。。http: www grasp com cn talent TalentDetail aspx?c=bb7f3776-61e0-4733-9645-28927d7eebf8注射

    详情2018-01-22 14:56:25责编:llp   来源:驱动管家     
  • adobe flash漏洞的后果 如何在metasploit编写该漏洞exp?

    adobe flash漏洞的后果 如何在metasploit编写该漏洞exp?

    上个月爆了一个Adobe Flash的漏洞,影响Windows, Macintosh和Linux平台下的Adobe Flash Player 11 2 202 233和之前版本,Android 4 x下Adobe Flash Player 11 1 115 7及之前版本,Android 3 x和2 x下的

    详情2018-01-30 20:33:19责编:llp   来源:驱动管家