关于php后门的编写

2012-08-04 22:07:45 46 17629 3
0x1 原理
1、执行系统命令的函数
proc_open, popen, exec, shell_exec, passthru,system
这里只给出两个例子,其他的可以查看php手册编写

system()
“``”执行命令
``执行命令等价于shell_exec()函数来执行命令。 再来个更短的 注:这个要开启short_open_tag的,不过默认为on

2、        可以执行代码的函数
eval() 函数把字符串按照 PHP 代码来计算,该字符串必须是合法的 PHP 代码,且必须以分号结尾。
正则表达式
Preg_replace函数的作用是用来执行常规表达式的查找和替换的, Mixed preg_replace(mixed pattern, mixed replacement, mixed subject, int limit, int &count)其中,Pattern是用来查找的常规表达式,replacement是用来替换的字符串,submit是要查找替换的字符串,limit是可以替换的字符串数,count是成功替换的数目。函数将返回替换后的字符串,当Pattern参数使用/e修正符时,preg_replace函数会将replacement参数当作 PHP代码执行。
assert()
assert这个函数在php语言中是用来判断一个表达式是否成立。但是其字符串参数会被执行。
ob_start()
更多的函数需要同志们去挖掘。

0x2 如何混淆
1、注释/**/
2、连接号
php中“.”为字符串连接符号 注:测试时发现,echo()、eval()等函数无效。

3、创建函数
create_function() 创建一个匿名函数
5、编码函数,base64等 注:其他的编码函数有gzinflate()、gzuncompress()、gzdecode()、str_rot13()等,可以查看php手册编写。

6、可变函数
PHP 支持可变函数的概念。这意味着如果一个变量名后有圆括号,PHP 将寻找与变量的值同名的函数,并且尝试执行它。<如果register_globals=on时,代码可以改为如下形式: 注:同样可以利用call_user_func()、array_walk()等函数

0x3 编写自己的 webshell
通过上面的知识,可以任意组合上面写到的代码执行和混淆技术,编写属于自己的php后门应该是顺手拈来的事,如果谁有好的发现或者是奇淫技巧记得告诉我。最后附上酷壳上面关于hello world的6种变态写法,也许在这里面会找到些许灵感。如果大家有什么补充欢迎回帖。关于技术,欢迎拍砖。

0x4 参考
http://www.php.net/
http://www.php-security.org/2010/05/20/mops-submission-07-our-dynamic-php/index.html#sec22
https://www.t00ls.com/viewthread.php?tid=18951
http://hi.baidu.com/monyer/item/a218dbadf2afc7a828ce9d63
http://h.ackack.net/tiny-php-shell.html
http://www.rising.com.cn/newsletter/news/2012-06-27/11810.html

关于作者

qingsh4n2篇文章18篇回复

评论46次

要评论?请先  登录  或  注册