如何学习黑客?Web(网站)渗透测试

优采云 发布时间: 2020-08-09 12:35

  这篇文章主要讲讲Web网站渗透怎样学习,学习好能够防御好。请不要用自己的技术去做违纪违法的事情!切记!

  说到黑客,其实大部分人都不太喜欢。更是一些受害者 谈之生厌 这是一把双刃剑,我走的是web渗透方面,也就是网站服务器相关的,当然黑客也分很多种 其实我也太反感这些骇客,平时没事就乱功击他人网站 搞他人态度...真的太难受。

  关于黑客这个就不多解释了。有兴趣的可以去瞧瞧百度上黑客分类。

  对黑客的定义似乎太广。web渗透也是算黑客的一种,可以去了解一下红蓝域。

  安全防御是目前全省乃至全世界的重中之重,网络安全就是国家安全,所以学习信安技术真的很有用 包括往前就业 都可以有比较好的发展。

  另外有技术交流的可以问我~Q 343202158

  web渗透笔记如下,大家可以去瞧瞧!

  0x00 序言

  这篇笔记是对Web应用程序渗透中的精典步骤的总结。我会将这种步骤分解为一个个的子任务并在各个子任务中推荐并介绍一些工具。

  本文展示的许多方法来自这儿,作者已准许转载。

  请记住我介绍的这种步骤都是迭代的,所以在一次渗透过程中,你可能会使用她们多次。举个栗子,当你设法获取一个应用程序的不同等级的权限时,比如从普通用户提高到管理员用户,可能就须要迭代借助。

  序言最后须要说明的是,这篇笔记的好多地方使用了收费的PortSwigger的Burp Suite Professional。对此我表示抱歉,但我觉得这个工具还是物超所值的。

  0x01 信息搜集在一次Web渗透过程中,信息搜集的目的是站在旁观者的角度,去了解整个Web应用的概貌。1. 目标确认

  工具简介Whois基于RFC 3912,用于查询域名相关信息的合同。Dig域名信息获取工具(Domain information groper)简称,是一个命令行的用于查询DNS服务器的网路管理工具。DNSRecon自动化DNS枚举脚本,由darkoperator维护。

  1.1 域名注册信息

  通过如下步骤确认目标所有者信息:

  Whois 目标域名/主机名whois 解析目标域名/主机名的IP地址dig +short Whois IP地址whois 104.27.178.12剖析输出结果

  如果目标开启了whois隐私保护,那么返回的结果可能是经过混淆的。

  !!不要功击未经授权的站点。作为渗透测试人员,有责任在测试之前明晰自己有没有获得目标所有者赋于的权限对目标进行测试。这也是为何目标确认是开始渗透测试的第一步。1.2 DNS信息查询

  我喜欢去 / 查询目标站点的DNS信息,这是一款很不错的在线DNS信息查询工具。

  dig +nocmd example.com A +noall +answer

dig +nocmd example.com NS +noall +answer

dig +nocmd example.com MX +noall +answer

dig +nocmd example.com TXT +noall +answer

dig +nocmd example.com SOA +noall +answer

...

dig +nocmd example.com ANY +noall +answer (This rarely works)

  dig -x 104.27.179.12

dig -x 104.27.178.12

  1.3 测试域传送漏洞

  域传送是一种DNS事务,用于在主从服务器间复制DNS记录。(译者注:可以看这个)虽然现在早已太稀少主机会开启,但是还是应当确认一下。一旦存在域传送漏洞,就意味着你获取了整个域下边所有的记录。

  域传送漏洞很容易防止。至少管理员可以设置只容许白名单内的IP列表可以进行域传送恳求。

  dig -t NS zonetransfer.me +short

dig -t AXFR zonetransfer.me @nsztm1.digi.ninja

dig -t AXFR zonetransfer.me @nsztm2.digi.ninja

  dnsrecon -d example.com

  2. OSINT 公开情报搜集

  工具描述Recon-NGTim 'Lanmaster53' Tomes写的公开情报工具框架,由社区维护。/MaltegoMaltego 是一款交互式的数据挖掘工具,它可以渲染出图用于关联分析。theharvestertheHarvester 可以从不同的公开资源中搜集邮箱、子域名、虚拟主机、开放的端口/主机指纹和职工姓名等信息

  我本想在这份笔记中收录详尽的OSINT的介绍,但是想了想决定不这样做。因为我认为这个部份可以单独写一篇(可能在以后的几篇中)。

  在这篇笔记中我就介绍一些非常棒的关于OSINT的干货,我想渗透测试者们对于这种干货应当十分熟悉:

  0x02 Mapping在一次渗透测试过程中,Mapping的目的是站在一个普通用户的角度去了解整个应用的概貌。1. 工具

  工具介绍Nmap带服务辨识和操作系统指纹识别的TCP/IP主机和端口扫描工具

  1.1 端口扫描,服务辨识,OS辨识! 端口扫描一般是渗透过程中第一步和第二步的过渡部份。要特别注意曝露的端口、服务版本和OS/s!2. 浏览器代理设置2.1 Firefox

  工具描述Firefox跨平台的一款现代浏览器,有很多有用的插件

  Firefox一般是Web渗透测试过程中的首选浏览器,这是因为它有很多有用的插件以及它的代理设置不会影响到全局代理。

  2.2 Firefox插件

  工具描述User Agent Switcher一款可以快速切换用户代理的Firefox插件Wappalyzer可以测量各种各样的网站所用的技术和软件组件的插件FoxyProxy代理切换插件

  这些插件在每次渗透测试过程中我总能用得到,我推荐你在第二步(Mapping)之前安装好它们。

  2.3 配置Firefox和Burpsuit

  在你进行Mapping之前你一定要配置要浏览器的代理,让流量经过Burp。

  2.4 Burp配置

  工具描述Burp Suit ProWeb安全测试套件

  你应当配置Burp使他适宜自己的喜好。但是起码我推荐你设置Scan Speed为thorough,这样你在使用扫描器时都会发出更多地恳求因而扫描出更多的漏洞。

  2.5 Burp扩充

  工具描述Burp Extender用于扩充Burp suite功能的API,可以在BApp商店获取Retire.js (BApp)用于测量版本落后的Javascript组件漏洞的Burp suite扩充Wsdler (BApp)可以解析WSDL文件,然后测试所有的容许的方式的恳求Python Scripter (BApp)可以在每位HTTP请求和响应时执行一段用户定义的Python脚本

  这些Burp扩充是我在渗透测试过程中常常使用的。和Firefox扩充一样,我建议大家在Mapping之前安装好它们。

  它们可以使用Burp Suite Pro的Burp Extender模块来安装。

  3. 人工浏览

  人工浏览可能是Mapping过程中最重要的部份。你有必要去浏览每位页面,点击页面上每一个跳转,这样在Burp的sitemap上面就可以出现这种恳求和响应。

  !!!手工浏览对于单页应用十分特别重要。自动化的网页爬虫不能否爬到单页应用由于单页应用的HTTP请求都是用异步的AJAX来进行的。4. 自动化爬取

  自动化爬取是使用Burp Spider来进行的,这个过程可以发觉你手工浏览没有发觉的一些页面。通常来说Burp Spider会在传统的Web应用中发觉更多的页面。

  !!!自动化爬虫十分危险。通常我会手工浏览80%~95%的页面,只用爬虫爬取极少的部份。因为在特定情况下爬虫很容易失效。5. 后续剖析

  这个时侯你应当使用Burp完成了Mapping这一步第一次的迭代,你应当注意目前把握的所有信息。

  5.1 需要非常注意

  这个时侯你可以注意一些须要特定页面跳转的功能点。通常这种功能点可以被手工操控,从而让其不用满足特定跳转次序就可以实现,这可以使你有重大发觉。(举个栗子,电子商务网站的付款功能,密码重置页面等)

  0x03 漏洞挖掘在一次渗透测试过程中,漏洞挖掘是在攻击者的角度来了解整个Web应用的概貌。1. 过渡

  在你Mapping以后,并且进行了一些基本的功能性的剖析后,就可以开始进行漏洞挖掘了。这个步骤中,你应当尽可能多的辨识出Web应用存在的漏洞。这些漏洞除了是The OWASP Top 10中收录的这些,还收录于应用的商业逻辑中。记住一点,你将会碰到大量的漏洞,它不属于任何一个现有的分类中,你应当时刻提防这一点。

  2. 内容挖掘2.1 漏洞扫描

  名称描述Nikto有指纹辨识功能的Web服务漏洞扫描器

  Nikto当之无愧的是最好的Web服务漏洞扫描器,特别是在小型的Web应用程序中表现非常好。它可以借助-Format选项来导入特定格式的扫描结果,使扫描结果更容易阅读和剖析。

  漏洞扫描一般是第二步和第三步的过渡。一旦有了扫描结果,一定要花时间去剖析一下结果,打开一些引人注目的页面瞧瞧。3. 强制浏览(译者注:翻译的觉得太别扭,看下边内容应当能明白哪些意思)

  名称描述Burp Engagement ToolsBurp Suite Pro中自带的有特殊用途的工具集Engagement Tool: Discover ContentBurp Suite Pro自带的用于强制浏览的工具Burp IntruderBurp Suite中可自定义的用于自动化的功击的模块。(比如brute forcing, injection, 等)FuzzDB收录各类恶意输入、资源名、用于grep搜索响应内容的字符串、Webshell等。

  强制浏览是一种挖掘方法,它可以发觉应用程序中没有被引用并且确实是可以访问的页面。Discover Content是Burp中专门用于此目的的工具。除此之外,Burp Intruder也可以通过字典功击来施行强制浏览(通常是在url参数和文件路径部份进行更改)。FuzzDB收录一些用于此目的的特别牛逼的字典,你可以在这里瞧瞧。

  3.1 测试可选内容

  名称描述User Agent Switcher用于迅速切换浏览器的User Agent的一款Firefox插件Burp IntruderBurp Suite中可自定义的用于自动化的功击的模块。(比如brute forcing, injection, 等)FuzzDB收录各类恶意输入、资源名、用于grep搜索响应内容的字符串、Webshell等。

  在内容挖掘这一步,我十分喜欢做一件事。那就是借助User Agent Switcher切换不同的User Agent之后访问同一个特定页面。这是因为好多的Web应用对于不同的User-Agent和Referer恳求头会返回不同的内容。

  我常常使用Burp Intruder来模糊测试User-Agent和Referer恳求头,一般还借助FuzzDB的字典。

  4. 自动化的漏洞挖掘

  名称描述Burp Scanner自动化扫描安全漏洞的Burp Suite工具

  当你在Mapping和进行漏洞挖掘的开始部份时侯,Burp Passive Scanner就早已在后台悄悄运行。你应当先剖析这份扫描结果,然后再进行Burp Active Scanner,这样在Burp Passive Scanner中发觉的值得关注的页面就可以在Burp Active Scanner中进行详尽的扫描。

  由于Burp Active Scanner完成所需的时间十分长,我更喜欢只容许一小段时间,然后查看二者之间的扫描结果并记录结果。

  !!!自动化的漏洞扫描是太危险的。用Burp Scanner可能造成不良的影响。除非你特别熟悉目标的功能与环境,否则你只应在非生产环境中使用。5. 配置5.1 默认配置

  在确认了目标所使用的技术后,很自然的一步跟进就是测试有没有默认配置。许多框架使用许多易受功击默认配置的应用程序便于于向开发人员介绍她们的产品。然后因为开发人员的疏漏,这些示例应用被布署到和目标站点所在的同一台服务器上,这促使目标站点承受很大的风险。

  5.2 错误配置

  在Web渗透测试的每一步,你都应当注意Web应用有没有错误的配置。你可以特别关注页面出现的错误信息,这些信息常常会给出很有用的数据库结构和服务器文件系统等信息。

  错误信息几乎总还能发觉一些。这些错误信息在注入和LFI(Local File Include)中非常有用。

  另外一个值得注意的是页面的敏感表单有没有禁用手动填充。比如密码数组常常会有一个“显示/隐藏”按钮。浏览器默认不会填充type="password"的input标签内容,而当密码数组是“显示”时,input标签就弄成了type="text",这样浏览器都会进行手动填充。这在多用户环境下是一个隐患。

  6. 身份认证

  在漏洞挖掘过程中,你应当认真考量你看见的每位登陆表单。如果这种表单没有做挺好的安全举措(比如双重认证,验证码,禁止重复递交等),攻击者就可能得到用户帐户未授权的权限。取决于表单的不同实现以及不同的框架/CMS,即使登陆失败目标站点也可能会透漏出用户帐户的一些信息。

  如果你测试发觉了上述所讨论的问题,你应当关注并记录。另外,如果登陆表单没有加密(或者借助了旧版本的SSL/TLS),这也应当关注并记录。

  6.1 模糊登陆测试

  名称描述CeWL通过爬取目标站点来生成用户字典的工具Burp IntruderBurp Suite中可自定义的用于自动化的功击的模块。(比如brute forcing, injection, 等)

  在你认真考量了登陆表单后,就可以开始登陆测试了。CeWL是一款非常好用的用于生成一次性字典的工具。你可以借助-h查看帮助文档。

  基本句型如下

  cewl [options] www.example.com

  当你构造好用户字典后就可以开始用Burp Intruder进行实际的模糊测试了。通常我会用两个payload集(一个是用户名的,另一个是CeWL生成的密码)。Intruder的Attack Type一般应当选Cluster Bomb。

  7. Session管理

  Session-token/Cookie剖析在渗透测试过程中尽管不是太吸引人的部份,但确实十分重要的一块。通常是这样子的,你想了解整个web应用是怎样跟踪Session,然后用Burp Sequencer这样的工具去测试session token的随机性/可预测性。一些应用(较传统的应用)会把session的内容储存在客户端。有时候这种数据上面会收录有加密的,序列化的敏感信息。

  这时也应当检测HTTP返回头的Set-Cookie是否收录Secure和HttpOnly的标示。如果没有的话就值得注意了,因为没有理由不设置这种标识位。

  Google搜索你得到的session token,可能会有一些发觉,比如Session可预测等,这样就可以进行Session绑架功击。7.1 用Burp测试Session Tokens

  名称描述Burp SequencerBurp拿来剖析数据集的随机性的模块

  Burp Sequencer是拿来测试Session Token随机性和可预测性的挺好的工具。当你用这个工具来测试目标的Session管理时,你应当先去除所有的Cookies,然后重新认证一次。然后就可以把带有Set-Cookie头的返回包发送给Burp Sequencer,然后Sequencer都会启动新的拦截对Token进行剖析。通常10000次恳求就差不多可以判定随机性和可预测性了。

  如果发觉Session token不够随机,那就可以考虑Session绑架了。

  8. 授权

  授权漏洞太象功能级访问控制缺位和不安全的直接对象引用漏洞,是太长一段时间我发觉的最流行的漏洞。这是因为许多的开发者没有想到一个低权限甚至是匿名用户会去向高权限的插口发送恳求(失效的权限控制)。

  http://example.com/app/admin_getappInfo

  或者是去恳求其他用户的数据(不安全的直接对象引用,译者注:水平越权)

  http://example.com/app/accountInfo?acct=notmyacct

  8.1 测试权限控制

  名称描述Compare Site MapsBurp的用于测试授权的模块

  这里有个小方法,就是注册两个不同权限的用户,然后用高权限的用户去访问整个Web应用,退出高权限用户,登录低权限用户,然后用Burp的Compare Site Maps工具去测试什么页面的权限控制没有做好。

  9. 数据验证测试

  名称描述Burp Repeater用于手工更改、重放HTTP请求的Burp模块

  注入漏洞的存在是因为Web应用接受任意的用户输入,并且在服务端没有正确验证用户的输入的有效性。作为一个渗透测试者,你应当注意每一个接受随便的用户输入的地方并设法进行注入。

  因为每位Web应用情况都不一样,所以没有一种万能的注入形式。接下来,我会把注入漏洞进行分类而且给出一些Payload。Burp Repeater是我测试注入漏洞时最常使用的工具。它可以重放HTTP请求,并且可以随时更改Payload。

  有一件事须要牢记:漏洞挖掘阶段要做的只是辨识漏洞,而漏洞借助阶段就会借助漏洞做更多地事。当然,每个注入漏洞都值得被记录,你可以在漏洞挖掘阶段以后对这种注入漏洞进行深入的测试。

  在每位分类下可以参照OWASP获取更多地信息。

  9.1 SQLi

  任何将输入带入数据库进行查询的地方都可能存在SQL注入。结合错误的配置问题,会导致大量的数据被攻击者窃取。

  我推荐你在做SQL注入时参照这个Wiki。如果你输入了这种Payload得到了数据库返回的错误信息,那么目标就十分有可能存在SQL注入漏洞。

  Sqlmap是一款自动化的SQL注入工具,我将会在漏洞借助阶段介绍它。

  OWASP-测试SQL注入)

  ' OR 1=1 -- 1

' OR '1'='1

' or 1=1 LIMIT 1;--

admin';--

http://www.example.com/product.php?id=10 AND 1=1

  9.2 跨站脚本攻击(XSS)

  攻击者借助Web应用程序发送恶意代码(通常是JavaScript代码)给另外一个用户,就发生了XSS。

  有三种不同的XSS:

  存储型。当提供给Web应用的数据是攻击者事先递交到服务器端永久保存的恶意代码时,发生存储型XSS。反射型。当提供给Web应用的数据是服务端脚本借助攻击者的恶意输入生成的页面时,发生反射型XSS。DOM型。DOM型XSS存在于客户端的脚本。

  OWASP-测试XSS

<p>

">alert(&#39;XSS&#39;)

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线