通行证│用户名: 密码: 验证码: 验证码,看不清楚?请点击刷新验证码 电信网通铁通移动   在线
文章搜索:
热门搜索:红客 黑鹰 红客技术 安全动画 红客培训
首页 文章 软件 动画 资源 励志 论坛 邮箱 会员 军事 科技 博客 爱心红客 最近更新 800g资源
 业内新闻 漏洞公告 病毒公告 电脑知识 网络知识 菜鸟入门 攻防教程 黑客攻防 安全编程 工具使用 综合安全 个人安全 安全相关 Q Q安全 原创精华 红客人物 站内事件
您现在的位置: 爱国者安全网 >> 文章类 >> 红客教程 >> 网络攻防 >> 文章正文
PHP注射基础,经验,技巧三方面汇总篇
责任编辑:酷酷の鱼   更新日期:2008-4-27
 

来源:安全中国

PHP注射基础 经验 技巧三方面汇总篇
第一讲:判断有没注射点 
这个很简单,我们最常用的就是看到页面的格式为:index.php?id=2这样的地址,我们知道PHP经常是和MYSQL数据库一起用的,在MYSQL数据库中一定存在一个表,比如setting_table,我们提交上面地址的时候,程序一般上这样处理的: 
1、用GET或者POST取我们提交的id=1把这个值传给一个变量:$id. 
2、查询:select * from setting_table where id =$id 
上面的语句就是查询的语句,我们代入$id=1就是: 
select * from setting_table where id=1 
这话是没什么问题的,会取出id为1的信息进行显示给我们,所以我们就能看到正常的页面。 


-------------- 
看我们是怎么判断的: 
1、我们提交id=1 and 1=1 
看看这个是什么效果,这里的$id就是1 and 1=1,我们看看是什么样子的: 
select * from setting_table where id =1 and 1=1 
这个语句加了一个and 语句,后面是1=1是肯定成立的,所以就不影响上面语句的成立,它还会取出id=1的信息进行显示给我们,所以我们看到的还是原来的正常页面。 
2、我们提交 id =1 and 1=2 
看看这个是什么效果,这里的$id就是 1 and 1=2,我们看看在SQL中怎么执行 
select * from setting_table where id =1 and 1=2 
分析下这个语句,前面还是一样的,只是最后加了个and 1=2,这个自然不成立啦!又因为是and连接的,so自然找不到符合条件的啦!只能回显给我们一个错误或者空白的页面拉~!! 

上面就是一般我们采用and 1=1 & and 1=2来判断的基本原来,但是这里还要注意几点,如下: 
1、程序处理的时候必须是where id =$id 而不是where id=$id,这个单引号是很不一样的,怎么不一样,以后再说。。 
2、程序对我们提交的参数没有处理或者处理的不好,导致我们可以直接提交,如果程序多我们提交的参数进行处理,又会不一样,也是后话! 

第二讲:快速判断MYSQL版本 

前提:你得到一个注射点,比如:news.php?id=1 
这个点是你找到的,提交and 1=1 和and 1=2返回的是不同的。 

我们就可以这样来猜MYSQL的版本了。。步骤如下: 
1、提交/news.php?id=1/*!40000%20s*/ 如果返回正常就说明MYSQL版本在4000版本以下,你可以依次调节最高位的数字,比如我改为39000提交,如果再正常,就提交38000....直到返回错误提示,最后固定的那个就是MYSQL的版本了。。 
下面是我提交测试时的过程(只写MYSQL版本) 
40000(+)--39000(+)--38000(+)--370000(-)--37900(+)--37800(+)--37700(-)--结束!! 
得到MYSQL版本是37700。 

2、一般我们不去猜具体的版本,我们只关系MYSQL是不是在4.0以上,以为只有4.0以上的MYSQL才支持UNION查询,以下是不支持的,所以我们经常只用/*!40000%20s*/ 看看是不是4.0以上的版本。 

PS:/*!40000%20s*/ 这里的/*!......*/是mysql里一种特殊的注释方式,也没什么好奇怪的,记得怎么用就可以了~~ 

第三讲:PHP注射怎样得到表名。。 

正准备写,看到有人问到了,就总结下,算第三讲吧! 


Quote: 
Originally posted by spirit at 2006-5-16 05:57 PM: 
看了好多 文章了 ....眼睛都花了 
里面涉及到的东西也比较全面 
不过 一直不知道怎么搞出 表 
总不能直接搞 去 字段吧..?? 
一个一个来啊 
数据库 表 字段 值... 
这个逻辑我认为是对的 .... 
对了这里还是 感 ... 

表确实不好搞,不像ASP可能直接暴出来,PHP到现在还是暴不出来的,我们一般有两个办法: 
1、靠经验猜:比如大家常用的admin,user,news,vote,wenzhang,guanliyuan等等,没办法的事。。 
2、暴代码查看:用Load_file暴出文件代码,就可以看到数据插值到什么表,什么字段了,这样就很明白了,但是load_file也很有技巧的。。以后再讲。。 
-------------------------------------------- 
具体说一下吧: 
1、这个没什么好说的,直接猜就可以了,比如你看到一个注射点,类似news.php?id=1这样的点,你用union查询得到具体的字段,比如这样:news.php?id=1 and 1=2 union select 1,2,3,4 是成立的, 
你就可以这样猜:news.php?id=1 and 1=2 union select 1,2,3,4 from admin/*如果存在admin表,就会返回真,否则就不存在表admin,其他和这个一样的。 

2、这个就有点终极了,比如你得到他的绝对路径,可以load_file(file path)出文件的代码,比如你暴得管理员登陆的页面,就能看到他其中的SQL语句,可以看到他是从哪个表了取的值了,是吧》》 

原理就是这样的,多多思考,有什么心得,希望能分享。。。。 

第四讲:有无引号的差别 

很多朋友都对那个引号的作用不很了解,认为加引号和不加是一样的效果.. 

引号(包括单、双)对我们的注射是有着很大的影响的,这里主要还是和magic的状态有关,当这个magic为off的时候倒没什么影响,当这个magic为on的时候就大不一样了。。 
小知识:magic为on时,为自动为我们提交的单引号(‘),双引号(“),(\),空格( )等加上转意 符号\,使得上的都变成(\’),(\”),(\\)等,这就给我们注射太来麻烦,例子如下。 

一、第一个例子(没引号) 
如果语句如下: 

QUOTE: 
select * from news where newsid=$id 

1、magic为off时情况 
为off时不会处理我们提交的数据信息,假设一个SQL语句是这样的; 
我们在URL中可以提交$id的值,就像我们前面说的给$id为: 
$id=1 union select 1,2,3,4 from admin 
就基本上可以取得我们想要的数据了。 
2、magic为on时情况 
这时没什么区别,因为我们没有提交敏感的字符 

二、第二个例子看它处理的SQL语句: 

QUOTE: 

select * from news where newsid=$id 

这时要想成功利用$id这个没过滤的参数,我们可以提交如下: 
$id=1’ union select 1,2,3,4 from admin/* 
开始要有一个()来闭合前面的,后面再加一个/*注释掉后面的 

1、magic为off时情况 
如果magic为off,我们可以直接提交,成功利用 

2、magic为on时情况 
如果magic为on,那么我们提交的语句变成: 
$id=1\’ union select 1,2,3,4 from admin/* 
看,就没办法利用了(尽管有漏洞

  • 上一篇文章:
  • 下一篇文章:
  • 最近更新
    固顶文章 企业网络组建与维护班正式开课
    普通文章 瑞星公司04月27日发布 每日计算机病毒及木马播报
    推荐文章 推荐:时刻注意安全 养成安全上网新习惯
    普通文章 评价网站服务器软件的几个方面
    普通文章 淘宝网25日发生大故障 疑所在机房无UPS
    普通文章 瑞星病毒及木马预警一周播报(2008.04.28-05.04)
    普通文章 红心中国发起网站遭黑客攻击 IP地址大多来自欧洲
    普通文章 全球顶级黑客出庭作证 受雇新闻集团制作盗窃软件
    普通文章 Gartner调研报告显示 安全软件市场同比增长11.2%
    普通文章 卡巴斯基发关于恶意程序进化最新报告
    热门文章
    普通文章被公司开除员工删数据泄愤被拘
    普通文章熊猫实验室:计算机病毒已经失去控制
    普通文章主动防御/启发式查毒:杀软技术新主流
    普通文章赛门铁克CEO:微软在杀毒软件市场无作为
    普通文章U盘借"自动运行"位威胁排行榜首位
    普通文章信息安全条例列入国务院今年立法计划
    普通文章从反CNN网站被黑看未来网络战争趋势
    普通文章"木马下载器"现新变种 可远程盗取机密信息
    普通文章命令提示符被病毒禁用的解决办法
    普通文章菜鸟也玩手动修复引入表
    精彩专题