资源描述:
《php注射漏洞的总结与讲解》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、Php注射漏洞的总结与讲解1.前置知识php和mysql的一些基础的应用和总结这里的前置知识我会渗透到一下的教程当中所以不作为一课讲解2.php+mysql数字型注射漏洞的利用方法本节课程用的是随便在站长站下载一个php代码发现这个作者自己说自己是第一次写完成程序,看来不错啊,有漏洞在所难免,而且很多漏洞都是非常经典的。所以我们学习他的安全的同时也要学习着帮他修补下漏洞。这节课程讲的是php的数字型注射,所以我们就不多罗嗦了。我们首先打开article.php文件,看如下代码:$tid=$_GET['id'];$sql="select*fromdiarywher
2、eid=$tid";$sql1="updatediarysethit=hit+1whereid=$tid";//点击率//$hit=mysql_query('updatediarysethit=hit+1whereid='.$GET[id]);//点击率$result=mysql_query($sql);mysql_query--发送一条MySQL查询这里是关键,get获取id并没做任何过滤,然后赋值一个sql查询语句,接着发送mysql查询。这样漏洞很显然就出来了,而变量tid是属于数字类型没有被引号扩起来,所以利用比较简单,这次讲解主要讲解关于Union,a
3、nd,or等注入手法。跟asp字符型注入一样,我们and1=1,and1=2判断是否纯在漏洞。Ord()//将字符转换为ascii码Strlen()//获取字符串长度substr(string,start,length)参数描述string必需。规定要返回其中一部分的字符串。start必需。规定在字符串的何处开始。·正数-在字符串的指定位置开始·负数-在从字符串结尾的指定位置开始·0-在字符串中的第一个字符处开始lengthlength可选。规定要返回的字符串长度。默认是直到字符串的结尾。·正数 -从start参数所在的位置返回·负数 -从字符串末端返回Php注
4、解有两种形式/*,/**/,#。这里如果大家有看一些黑客类杂志或者有看过一些网站入侵文章就会有些了解。例如:phpcms2007的漏洞guestbook/?gid=1&keyid=%d5'/**/union/**/select/**/1,2,3,4,concat(userid,0x7C,username,0x7C,password,0x7C,authstr),6,7,8,9,10,11,12,13,14,15,16,17%20from%20phpcms_member%20where%20groupid=1%23这里不禁利用了/**/还利用了#//#的URL编码为
5、%23空格的URL编码为%20$sql="select*fromdiarywhereid=$tid";还是这句,我们先根据这句话来分析,到phpmyadmin找到diary表看有多少个字段idtitlecontentdatehitcid 栏目id71fsdfsdf
fdsfddsfsdfdsfdsf
2009-01-204072fdsfsdfd
fsdfsdfdsfdsfsd
2009-01-201719我们发现有六个字段。为什么要来看这个呢?Union联合查询:首先我们需要学习下联合查询union。大多数php入侵都是利用这个union。(
6、在php4以前版本不适用。)UNION 指令的目的是将两个SQL语句的结果合并起来。从这个角度来看, UNION 跟 JOIN有些许类似,因为这两个指令都可以由多个表格中撷取资料。 UNION 的一个限制是两个SQL语句所产生的栏位需要是同样的资料种类。另外,当我们用 UNION这个指令时,我们只会看到不同的资料值(类似SELECTDISTINCT)。UNION 的语法如下:[SQL语句1]UNION[SQL语句2]假设我们有以下的两个表格,Store_Information 表格store_nameSalesDateLosAngeles$1500Jan-05-
7、1999SanDiego$250Jan-07-1999LosAngeles$300Jan-08-1999Boston$700Jan-08-1999InternetSales 表格DateSalesJan-07-1999$250Jan-10-1999$535Jan-11-1999$320Jan-12-1999$750而我们要找出来所有有营业额(sales)的日子。要达到这个目的,我们用以下的SQL语句:SELECTDateFROMStore_InformationUNIONSELECTDateFROMInternet_Sales结果:DateJan-05-1999
8、Jan-07-1999J