# security
**Repository Path**: panleiming/security
## Basic Information
- **Project Name**: security
- **Description**: web安全学习
- **Primary Language**: Java
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2020-08-20
- **Last Updated**: 2022-05-24
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Web安全
# 目录
1. sql注入
1. 简单sql注入
2. 实战
1. 简单sql注入
# sql注入
以下都是针对mysql数据库
## 简单sql注入
简而言之,就是对一些查询sql进行sql注入,获取信息,一般分以下几步:
1. 检测注入点,通过在接口之后加入`and 1=1`和`and 1=2`,通过观察返回的数据,来判断是否可以进行sql注入;
2. 检测sql返回的列数,通过`order by 1`,`order by 2`,...来判断当前数据返回的列数,然后再结合`union select 1, 2, ...`判断检测到的列数是否正确;
3. 使用`limit`关键字找出显示在页面上显示的是哪几列的数据(PS:可以直接抓包看json数据);
4. 获取当前的数据库名,使用`database()`内置方法获取当前数据库名;
5. 获取所有表名,使用`select ..., table_name,... from information_schema.tables where TABLE_SCHEMA = '当前数据库名'`;
6. 获取所有列名,使用`select ..., column_name,... from information_schema.columns where table_schema = '当前数据库名' and table_name = '需要查询的表名'`;
7. 获取对应列名的数据;
# 实战
## 简单sql注入
简单sql注入实战