Burpsuite Sqlmap Nmap入门总结

burpsuite sqlmap nmap 简介

sqlmap基础

五种独特sql注入技术:

  • 基于布尔类型的盲注
  • 基于时间的盲注
  • 基于报错注入
  • 联合查询注入
  • 堆查询注入

    sqlmap入门

  • 1.判断是否存在注入

    sqlmap -u "http://.....?id=1" #在后面的参数大于两个时,需要加单引号,一个参数也可以加。

  • 2.判断文本中的请求是否存在注入

    该文本的内容通常为web数据包

    sqlmap -r xxx.txt #-r参数一般存在cookie注入时使用。

  • 3.查询当前用户下所有的数据库

    sqlmap -u "http://...?id=1" --dbs

  • 4.获取数据库的表名

    sqlmap -u "http://....?id=1" -D dkeye --tables

  • 5.获取表中的字段名

    sqlmap -u "http://...?id=1" -D dkeye -T user_info --columns

  • 6.获取字段内容

    sqlmap -u "http://...?id=1" -D dkeye -T user_info -C username,password --dump

  • 7.获取数据库的所有用户

    在当前用户有权限读取包含所有用户的表的权限时,使用该命令可以列出所有的管理用户

    sqlmap -u "http://....?id=1" --users

  • 8.获取数据库用户的密码

    如果当前用户有读取包含用户密码的权限,sqlmap会先列举出用户,然后列出hash,并尝试破解。

    sqlmap -u "http://...?id=1" --passwords

  • 9.获取当前网站数据库名称

    sqlmap -u "http://...?id=1" --current-db

  • 10.获取当前网站的用户名称

    sqlmap -u "http://...?id=1" --current-user

sqlmap进阶:参数详解

  • 1.--level 5: 探测等级

    可不加level,默认是1,其中5级包含的payload最多,会自动破解出cookie、XFF等头部注入。当然,level 5的运行速度也比较慢。

  • 2.--is-dba: 当前用户是否为管理员权限

    sqlmap -u "http://...?id=1" --is-dba #返回true or false

  • 3.--roles:列出数据库管理员角色
  • 4.--referer:http referer头

    sqlmap可以在请求中伪造http中的referer,当--referer http://www.baidu.com

  • 5.--sql-shell :运行自定义sql语句

    类似手工注入,启动一个交互式窗口,可以在其中运行自定义的sql语句。如:>select * from users limit 0.1

  • 6.--os-cmd, -os-shell: 运行任意操作系统命令

    这个参数不是很懂嘞!

    用处:--os-shell参数可以模拟一个真实的shell,输入想要执行的命令。当不能执行多语句时(比如php或asp的后端数据库为mysql),仍然可以使用INTO OUTFILE写进可写目录,创建一个web后门。--os-shell支持asp、asp.net、jsp、php四种语言(要想执行改参数,需要管理员权限,也就时--is-dba的值要为true。

  • 7.--file-read:从数据库服务器中读取文件

    例子:sqlmap -u "http://...?name=luther" --file-read "C:/example.exe" -v 1 #-v 1不知道是什么意思呢。

  • 8.--file-write --file-dest :上传文件到数据库服务器中

    例子:sqlmap -u "http://.../?id=1" --file-write "/software/nec.exe.packed" --file-dest "C:/WINDOWS/Temp/nc.exe" -v 1

sqlmap自带绕过脚本tamper讲解

sqlmap在默认的情况下除了使用CHAR()函数防止出现单引号,没有对注入的数据进行修改,读者可以使用--tamper参数对数据做修改来绕过waf等设备,其中大部分脚本主要用正则模块替换攻击载荷字符编码的方式尝试绕过waf的检测规则。
命令格式如下:sqlmap xxx --tamper 模块名
目前官方提供53个绕过脚本,灵活的运用这些模块是绕过企业waf的关键。
还需学习绕过脚本的编写与修改。
  • --identify-waf #对一些网站是否有安全防护(waf/ids/ips)进行试探。

    下面介绍一些常用的tamper脚本:
  • apostrophemask.py #将引号替换为utf8,用于过滤单引号
  • base64encode.py #替换为base64编码
  • multiplespaces.py #围绕sql关键字添加多个空格
  • space2plus.py #用+号替换空格
  • nonrecursivereplacement.py #作为双重查询语句,用双重语句替代预定义的sql关键字(适用于非常弱的自定义过滤器,例如将select替换为空
  • space2randomblank.py #将空格替换为其他字符
  • unionalltounion.py #将union all select 替换为union select
  • securesphere.py #追加特制的字符串
  • space2hash.py #将空格替换为#好,并添加一个随机字符串和换行符。
  • space2mssqlblank.py (mssql) #将空格替换为其他空符号
  • space2mssqlhash.py #将空格替换为#号,并添加一个换行符
  • between.py #用NOT BETWEEN 0 AND替换大于号(>),用BETWEEN AND替换等号(=)
  • percentage.py #asp允许在每个字符前面添加一个%号
  • sp_password.py #从DBMS日志的自动模糊处理的有效载荷中追加sp_password
  • charencode.py #对给定的payload全部字符使用url编码(不处理已经编码的字符)
  • randomcase.py #随机大小写
  • charunicodeencode.py #字符串unicode编码
  • space2comment.py #将空格替换为/**/
  • equaltolike.py #将等号替换为like
  • greatest.py #绕过对">"的过滤,用GREATEST替换大于号
  • ifnull2ifisnull.py #绕过对IFNULL的过滤,替换类似IFNULL(A,B)为IF(ISNULL(A),B,A).
  • modsecurityversioned.py #过滤空格,使用mssql内联注释的方式进行注入
  • space2mysqlblank.py #将空格替换为其他空白符号。
  • modsecurityzeroversioned.py #使用mysql内联注释的方式(/!00000/)进行注入
  • space2mysqldash.py #将空格替换为--,并添加一个换行符。
  • bluecoat.py #在sql语句之后用有效的随机空白字符替换空格符,随后用LIKE替换等于号。
  • wersiondkeywords.py #注释绕过
  • halfverisonedmorekeywords.py #当数据库为mysql时绕过防火墙,在每个关键字之前添加mysql版本注释
  • space2morehash.py #将空格替换为#号,并添加一个随机字符串和换行符
  • apostrophenullencode.py #用非法双字节unicode字符替换单引号
  • appendnullbyte.py #在有效负荷的结束位置加载零字节字符编码
  • chardoubleencode.py #对给定的payload全部字符使用双重url编码(不处理已经编码的字符)
  • unmagicquotes.py #用一个多字节组合(%bf%27)和末尾通用注释一起替换空格。
  • randomcomments.py #用/**/分割sql关键字

    掌握tamper的编写规则,这样能在各种实战中更加运用自如

burpsuite 详解

专业版和免费版主要区别有以下三点:

burp scanner
工作空间的保存和恢复
扩展工具:如target analyzer、content discovery 和task scheduler

burpsuite是java语言编写的,需要运行在jre中

  • 配置java环境变量

    在系统变量处:

    新建:JAVA_HOME 变量值为:jdk的安装的路径

    在path变量的最前面,加上%JAVA_HOME%\bin;

    新建CLASSPATH变量:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;

burpsuite入门

1.proxy

  • raw #主要显示web请求的raw格式,以纯文本的形式显示数据包。可以通过手动修改这些信息,对服务器进行渗透测试
  • params #主要显示客户端请求的参数信息,包括get或者post请求的参数、cookie参数。可以通过修改这些请求完成对服务器的渗透测试
  • Headers #显示的时数据包中的头信息,以名称、值的形式显示数据包。
  • Hex #对应的时raw中的信息的二进制内容,可以通过hex编辑器对请求的内容进行修改,在进行00截断时非常好用。

    2.spider

    spider的蜘蛛爬行功能可以帮助我们了解系统的结构,其中spider爬取的内容将在target中展示。

    3.Decoder

    Decoder的功能比较简单,它时burp中自带的编码解码及散列转换的工具,能对原始数据进行各种编码格式和散列的转换。

    对编码解码选项而言,目前支持url、html、base64、ascii、十六进制、八进制、二进制和GZIP共八种格式转换。hash散列支持sha、sha-224、sha-256、sha-384、sha-512、md2、md5格式的转换。更重要的是,可以对同一数据在decoder进行多次编码、解码的转换。

    burpsuite进阶

    1.scanner

    burp scanner主要是用于自动检测web系统的各种漏洞。

    在扫描结果中选中需要进行分析的部分,将其发送到repeater模块中进行模拟提交分析和验证。

    当scanner扫描完成后,可以右击burp target站点地图选项下的链接,依次选择issues —> report issues 选项,然后导出漏洞报告。

    burp scanner主要有主动扫描和被动扫描两种扫描方式。

burpsuite会向应用发送新的请求并通过payload验证漏洞。这种模式下的操作会产生大量的请求和应答数据,直接影响服务端性能,通常用于非生产环境。主动扫描适用于以下两类漏洞。
* 客户端漏洞:xss、http头注入、操作重定向...
* 服务端漏洞:sql注入、命令行注入、文件遍历...
被动扫描:
当使用被动扫描模式是,burp不会重新发送新的请求,只是对已经存在的请求和应答进行分析,对服务端的检测来说,这比较安全,通常用于生产环境的检测。
一般来说,下列漏洞在被动模式中容易被检测出来。
* 提交的密码为未加密的明文
* 不安全的cookie的属性,例如缺少httponly和安全标志
* cookie的范围缺失
* 跨域脚本包含和站点引用泄漏。表单值自动填充,尤其是密码。
* ssl保护的内容缓存。
* 目录列表
* 提交密码后应答延迟
* session令牌的不安全传输
* 敏感信息泄漏,例如内部ip地址、电子邮件地址、堆栈跟踪等信息泄漏。
I不安全的viewstate的配置。
* 错误或不规范的content-type指令。
  • 优点:使用被动扫描模式验证是否存在漏洞,以减少测试的风险。

    2.Intruder

    Intruter是一个定制的高度可配置的工具,可以对web应用程序进行自动化攻击。如通过标识符枚举用户名、id和账户密码、模糊测试、sql注入、跨站、目录遍历等。

    burpsuite Intruder通常被用于以下场景:

  • 标识符枚举。web应用程序通常使用标识符引用用户、账户、资产等数据信息。例如,用户名、文件id和账户号码。
  • 提取有用的数据。在某些场景下,不是简单地识别有效标识符,而是通过简单标识符提取其他数据。例如,通过用户的个人空间id获取所有用户在其个人空间的名字和年龄。
  • 模糊测试。很多输入型的漏洞(如sql注入、跨站点脚本和文件路径遍历)可以通过请求参数提交各种测试字符串,并分析错误消息和其它异常情况,来对应用程序进行检测。受限于应用程序大小和复杂性,手动执行这个测试是一个耗时且繁琐的的过程,因此可以设置一个payload,通过burpsuite intruder自动化对web应用程序来进行模糊测试。
  • payload有四种模式:
* sniper模式使用单一的payload组。它会针对每个位置设置payload。这种攻击设用于对常见漏洞中的请求参数单独进行fuzzing测试的情景。攻击中的请求总数应该是position数量和payload数量的乘积。
* Battering ram模式使用单一的payload组。它会重复payload并一次性把所有相同的payload放入指定的位置中。这种攻击适用于需要在请求中把相同的输入放到多个位置的情景。请求的总数是payload组中payload的总数。
* Pitchfork模式使用多个payload组。攻击会同步迭代所有的payload组,把payload放入每个定义的位置中。这种攻击类型非常适合在不同位置中需要插入不同但相似输入的情况。请求的数量应该是最小的payload组中的payload数量。
* Cluster bomb模式会使用多个payload组,每个定义的位置中有不同的payload组。攻击会迭代每个payload组,每种payload组合都会测试一遍。这种攻击适用于在位置中需要不同且不想关或者未知输入攻击的情景。攻击请求的总数是各payload组中payload数量的乘积。

对Status或Length的返回值进行排序,查看是否有不同之处。如果有,查看返回包是否显示为登录成功。

3.Repeater

burp repeater是一个手动修改、补发个别http请求,并分析它们的响应的工具。它最大的用途就是能和burpsuite工具结合起来使用。可以将目标站点地图、burp proxy浏览记录,burp Intruder的攻击结果,发送到repeater上,并手动调整这个请求。来对漏洞的探测或攻击进行微调。

  • Repeater分析选项有4种:raw params headers hex
raw:显示纯文本格式的消息。
params:对于包含参数(url查询字符串、cookie头或者消息体)的请求。params选项会把这些参数显示为名字/值的格式,这样就可以简单的对它们进行查看和修改。
headers:将名字/值的格式显示http的消息头,并且以原始格式显示消息体。
hex:允许直接编辑由原始二进制数据组成的消息。

4.Comparer

burp Comparer在burpsuite中主要提供一个可视化的差异比对功能,来比对分析两次数据之间的区别。(在结果处,右击可导至该Comparer模块)

  • 使用到的场合:
枚举用户名的过程中,对比分析登陆成功失败时,服务端反馈结果的区别。
使用Intruder进行攻击时,对于不同的服务的响应,可以很快分析处两次响应的区别在哪。
进行sql注入的盲注测试时,比较两次响应消息的差异,判断响应结果于注入条件的关联关系。
  • Comparer数据加载的常用方式如下所示:

    从其他burp工具通过上下文菜单转发过来。

    直接粘贴。

    从文件中加载。

    5.Sequencer

    burp Sequencer是一种用于分析数据样本随机性质量的工具。

  • 可以用它测试应用程序的会话令牌(session token)、密码重置令牌是否可预测等场景,通过Sequencer是数据样本分析,能很好地降低这些关键数据被伪造的风险。
  • burp Sequencer主要由信息截取(live capture)、手动加载(Manual Load)和选项分析(Analysis Options)三个模块组成。

    在截取信息后,单击Load按钮加载信息,然后单击"Analyze now"按钮进行分析。

    nmap 详解

    nmap(network mapper,网络映射器)是一款开放源代码的网络探测和安全审核工具。它被设计用来快速扫描大型网络,包括主机探测与发现、开放的端口情况、操作系统与应用服务指纹识别、waf识别及常见安全漏洞。它的图形化界面是Zenmap,分布式框架为DNmap。

    nmap 入门

    1.扫描参数

  • nmap --help #查看帮助
  • -iL:从文件中导入目标主机或目标网段
  • -iR: 随机选择目标主机

    ...

    扫描参数太多了,暂时用不到这么多。

    2.常用方法

  • 扫描多个目标地址:nmap 192.168.x.102 192.168.x.105
  • 扫描一个范围内的目标地址:nmap 192.168.0.100-110
  • 扫描目标地址所在的某个网段:nmap 192.168.0.100/24
  • 扫描主机列表targets。txt中所有目标地址

    nmap -iL C:\users\Aerfa...\targets.txt

  • 扫描除某一目标地址之外的所有目标地址:nmap 192.168.0.100/24 --exclude 192.168.0.105
  • -excludefile #扫描除某一文件中的目标地址之外的目标地址
  • -p 21,22,80 #使用-p参数指定端口号,将大大提升扫描速度。
  • 对目标地址进行路由跟踪:nmap --traceroute 192.168.0.105
  • 扫描目标地址所在c段的在线状况:nmap -sP 192.168.0.100/24
  • -O #对目标地址的操作系统指纹识别。
  • 探测目标地址开放端口对应的服务版本:nmap -sV 192.168.0.105
  • 探测防火墙状态:nmap -sF -T4 192.168.0.105

    nmap进阶

nmap的脚本默存在/xx/nmap/scripts 文件夹中
nmap脚本主要分以下几类:
auth #负责处理鉴权证书(绕过鉴权)的脚本。
Broadcast #在局域网内探测更多服务的开启情况,如DHCP/DNS/SQLSERVER等
Brute #针对常见的应用提供暴力破解方式,如http/SMTP等。
Default #针对常见-sC或-A选项扫描时默认脚本,提供基本的脚本扫描
Discovery #对网络进行更多信息的搜集,如SMB枚举、SNMP查询等。
Dos #用于拒绝服务攻击
Exploit #利用已知的漏洞入侵系统
External #利用第三方的数据库或资源。例如,进行whois解析
Fuzzer #模糊测试脚本,发送异常的包到目标机,探测潜在漏洞。
Intrusive #入侵性脚本,此类脚本可能引发对方IDS/IPS的记录或屏蔽
Malware #探测目标机是否感染了并对、开启后门等信息。
Safe #此类与Intrusive脚本相反,属于安全性脚本。
version #负责增强服务于版本扫描功能的脚本
vuln #负责检查目标机是否有常见漏洞,如MS08-067

常用脚本

  • 用法;可以根据--script=类别进行扫描,常用参数如下所示:
-sC/--script=default #使用默认脚本进行扫描
--script=<Lua scripts> #使用某个脚本进行扫描
--script-updatedb #更新脚本
--script-trace #如果设置该参数,则显示脚本执行过程中发送于接受的数据。
-script-args-file=filename #使用文件为脚本提供参数
--script-args=key1=value1,key2=value2.... #该参数用于传递脚本里的参数,key1是参数名,该参数对应value1这个值。如果有更多参数,使用逗号连接。
例子:
鉴权扫描:nmap --script=auth 192.168.0.105
暴力破解:nmap --script-brute 192.168.0.105
扫描常见的漏洞:nmap --script=vuln 192.168.0.105
应用服务扫描:nmap --script=realvnc-auth-bypass 192.168.0.105 #nmap具备很多常见应用扫描脚本,例如vnc服务、mysql服务、telnet服务、rsync服务
探测局域网内更多服务开启情况:nmap -n -p 445 --script=broadcast 192.168.0.105
whois解析:nmap --script external baidu.com

更多扫描脚本的使用方法参见:https://nmap.org/nsedoc/categories.

原文地址:https://www.cnblogs.com/hudunkey/p/10354148.html

时间: 2024-11-03 03:55:38

Burpsuite Sqlmap Nmap入门总结的相关文章

任何事情,努力才有可能,新书《网络攻防实战-sqlmap从入门到精通》目录及架构

最早的时候,仅仅是想在sqlmap上面多做一些研究,后面研究越来越深入,做了sqlmap攻防实战专栏,再后来觉得专栏内容会做到30+篇文章,昨天晚上构思了一下,觉得可以整理成一本书,算是今年的研究成果,任何事情,不努力永远没有机会,努力了,就有可能成功. <网络攻防实战-sqlmap从入门到精通>目录 第1章sqlmap安装及搭建测试平台 1.1在windows上安装sqlmap 1.2在centos上安装sqlmap 1.3在kali虚拟机中安装及使用sqlmap 1.4在kali上搭建dv

Burpsuite+sqlmap批量扫描sql漏洞

1.burpsuite设置导出log n'd'k 输入文件名保存 2.sqlmap批量扫描 python sqlmap.py -l 文件名 --batch -smart batch:自动选yes. smart:启发式快速判断,节约时间 中文支持可能存在问题 3.扫描的结果保存在 能注入的在上图csv文件中保存 注入的信息保存在对应的文件夹下的log文件,payload信息如下 来自为知笔记(Wiz)

burpsuite+sqlmap跨登录验证SQL注入

(我操作的系统是kali linux) 1.利用burpsuite代理设置拦截浏览器请求(具体操作步骤可参考:http://www.cnblogs.com/hito/p/4495432.html) 2.拦截完成的请求具体内容在“Proxy--Intercept”中完整展现 3.右键选中-copy to file,保存到桌面(txt格式) 4.应用程序中调用sqlmap,输入命令 sqlmap -r xxx.txt -tfUPass(文件我是放在桌面,直接拖到终端) 就开始扫描第一步拦截的目标链接

端口扫描之王——nmap入门精讲(二)

接着讲上节的内容,上节中提到了一个时间优化的问题是使用参数-n,通过不解析地址来进行优化时间的,但是优化时间的方法还有很多,比如说我们可以通过时间优化(0-5),指定单位时间内的探针数,设置组的大小 时间优化(0-5) 时间优化的参数是(-T0~5),最快的扫描速度为-T5,最慢的扫描速度为-T0,实现的原理:通过设置各个端口的扫描周期,从而来控制整个扫描的时间,比如说T0各个端口的扫描周期大约为5分钟,而T5各个端口的扫描周期为5ms,但是过快的扫描也是有缺点的,扫描的周期过快,会很容易被防火

Burpsuite sqlmap插件

插件下载地址:http://code.google.com/p/gason/downloads/list 启动方法: java -classpath gason-0.9.5.jar:burpsuite_free_v1.5.jar burp.StartBurp 参考文献1:http://resources.infosecinstitute.com/sqlmap-burp-plugin-2/参考文献2:http://blog.buguroo.com/?p=2471&lang=ensqlmap-GUI

linux渗透工具

Kali(sqlmap nmap fierce etc...) dirb burpsuite dirsearch Dir-Xcan githack htpwdScan proxy sqlmap subDomainBrute weakfilescan wordlist

三千愁思为简历

眼看着马上步入找工作的大军中,已经开始准备简历了 心理慌的不行,底气不足,突然间有一种时间的消逝感,心理很多痛和委屈都想说出来. 大三下学期了,半年找工作,半年为实习,然后再半年就是毕业前的寒暄和告别了.如此美好的大学生活,激情才刚刚开始,只是已到黄昏,突然间就只剩这半年的仓促待在学校里面, 三年了 追两个女生失败,其中一位反复的分离之中,没有了成的希望了,心好累,三年了,不太喜欢学校敷衍形式的比赛,算是为自己找的一个借口,没有拿过什么讲,上过什么大舞台,没有拿过一次奖学金, 即使在外面报了个培

使用ew代理导出和导入mssql数据

最近有些忙,在51cto上了一个<Web网站安全评估分析及防御>专栏,说实话,针对attack的情况,如何来进行扫描,如何来进行防御,如何发现漏洞,是一件很有意思的事情,做这个事情才有意义和价值,penetest仅仅是为了证明,通过技术手段,可以验证,能够拿到webshell,乃至服务器权限.在前端时间的一个penetest中,由于Web服务器是站库分离,通过webshell来导出数据比较困难(MSSQL数据库),即使导出数据库,数据库在内网数据库服务器上,无法直接下载,通过研究和实战,通过e

BurpSuite日志分析导入SqlMap进行批量扫描-BurpLogFilter

https://github.com/tony1016/BurpLogFilter    一个python3写的,用于过滤BurpSuite日志的小程序 WHY? 为什么要写这个程序呢?强大的SqlMap支持使用BurpSuite的日志进行批量分析,但是BurpSuite的日志记录了所有走代理的流量,包括静态资源啊,重复的提交啊,这些都会影响SqlMap的分析效率.于是打算写一个小程序,可以做到: 可以按照域名过滤请求 可以自动过滤静态资源请求 可以自动按照模式过滤URL,即相同URL和参数的请