sqlmap源码流程图
2016-11-23 16:19:40 0 举报
sqlmap流程图
作者其他创作
大纲/内容
尝试bool注入
是
否
要求用户跳过一些对其他DBMS的payload测试
页面不稳定
那么询问用户是否扩展这些payload到所有的DBMS中去,不受到所提供的level和risk值的影响。
页面是稳定的
确认参数是不是可以被注入的
找到DBMS相关信息
加载tamper来进行绕过
请求得到的页面和模板页面进行比较,如果页面的差别达到了0.5则存在waf
生成一个启发式搜索的payload
是不是需要接管或者获取信息(数据库、表、字段、用户,等等)
读取hash数据库,看是否检测过了没
目标是否已经检测过
构造一个xss测试的payload
上次请求的payload是不是返回了DBMS信息
payload注入的payload信息以及获取到的DBMS相关的结果
返回的页面和模板不同
获取第二次请求的页面
可能做了字符的转换
从初始话的kb中获取到所有的payload
发送一个类型为整形的参数(随机产生长度为4)的payload
检测是不是存在waf
执行payload
action
不同
获取DBMS信息的,那么只执行level和risk都小于配置中的level和risk(用户指定),其他则会被忽略
Sql注入检测
和原始页面是不是相同
是否需要注入测试,是的话,执行注入逻辑,不是的话,直接给出测试结果
检测页面的稳定性
告知用户什么类型的什么参数是可以被注入
页面是否存在绝对路径信息
启发式搜索注入点
存在漏洞
联合注入
开始注入初始化:初始化目标环境,解析目标URL
从kb.originalPage中获取原来的页面,该参数在checkConnection中实现(初始化的时候就调用了),同时之后经常用到的模板页也是在此初始化,即采用用户指定的的url、参数、值来请求设置
给出结论
测试目标URL是不是连通的
延时注入或者多语句查询注入联合注入
相同
再构造一个字符类型的paylaod
两个页面的内容是否相等
布尔注入
用payload通过querypage请求目标
按照boundaries和payload的clause和where组装payload test
检测参数是不是动态参数
设置目标环境:1.创建输出结果目录2.解析请求参数3.设置session信息,就是session.sqlite。4.恢复session的数据,继续扫描。5.存储扫描结果。6.添加认证信息如果之前的injections,dbs的session信息存在的话就从数据库中将其从数据中提取出来放置到kb中。
和之前页面比较是否相同
报错注入
和原始页面是否相同
开始
dbms没有通过之前的启发式搜索中的dbms payloa而被识别出来,且指定了bool注入
该参数是动态的
启发式搜索是否找到漏洞
告知用户是不是存在xss漏洞
收藏
0 条评论
下一页