# 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注入实战