Web安全SQL注入学习笔记二
2-6布尔盲注
substr(version(),1,1)=‘a’截取字符串,第一个参数要截取的字符串 ,第二个参数截取的起始位置,第三个是截取偏移量 这样的语句就能判断version的第一个字符是否为a,这样进行遍历,修改红色位置就能知道所有字符串
?id=-1’ or (select substr(version(),1,1)=‘a’) %23
然后给他加一个位置
?id=-1’ or (select substr(table_name,1,1) from information_schema.tables where table_schema=databse()) =‘a’ %23
但是这样的效率过于低下
?id=-1’ or (select ascii( substr(table_name,1,1)) from information_schema.tables where table_schema=databse()) >1 %23 用ASCII码和二分法来确定
还可以使用burp suit的intruder功能对变量进行遍历
2-7时间延时注入
if(1,sleep(),0)如果第一个条件为真则sleep两秒,否则就输出0,然后就控制第一个数据是否为真来判断
将1的位替换为布尔盲注的语句,常用于无论怎么修改SQL语句都不报错的情况
if ((select ascii( substr(table_name,1,1)) from information_schema.tables where table_schema=databse() limit 0,1) >1,sleep(2),0) %23 若语句为真则会睡眠两秒
2-8 Cookie注入
当你输入正确的用户名密码,客户端插入Cookie标记你的身份
2-9 HTTP-Referer注入
extractvalue()用法
在referer处和之前注入方式一样,试图让它报错,然后让它不报错
2-10读取和写入文件
读取文件
Load_file(file_name):读取文件并返回该文件的内容作为一个字符串
1) 必须有权限读取并且文件必须完全可读
2) 欲读取文件必须在服务器上
3) 必须指定文件的完整路径
4) 欲读文件必须小于max_allowed_packet
Burp suite 的decoder 功能可以解码
往服务器写文件”
这样思考是否能向里面写木马