1、Web渗透测试基础,培训讲师:李良,培训课程安排-第1天,时间安排:3天21课时 内容安排:,培训课程安排-第2天,培训课程安排-第3天,Web渗透测试基础培训内容,1、渗透测试相关名词解释 2、渗透测试流程 3、基本技能 4、渗透测试工具使用 5、第三方风险利用 6、攻防实战演练,Web渗透测试名词解释,什么是渗透测试?渗透测试 (penetration test):通过模拟恶意黑客的攻击方法,来评估计算机网络系统安全的一种评估方法。这个过程包括对系统的任何弱点、技术缺陷或漏洞的主动分析,这个分析是从一个攻击者可能存在的位置来进行的,并且从这个位置有条件主动利用安全漏洞。两个显著特点是:渗透
2、测试是一个渐进的并且逐步深入的过程。渗透测试是选择不影响业务系统正常运行的攻击方法进行的测试,通常不采用DDOS,SYN等破坏性的攻击手段。,Web渗透测试名词解释,什么是ATP攻击?APT是黑客以窃取核心资料为目的,针对客户所发动的网络攻击和侵袭行为,是一种蓄谋已久的“恶意商业间谍威胁”。这种行为往往经过长期的经营与策划,并具备高度的隐蔽性。APT的攻击手法,在于隐匿自己,针对特定对象,长期、有计划性和组织性地窃取数据,这种发生在数字空间的偷窃资料、搜集情报的行为,就是一种“网络间谍”的行为。APT攻击样式:智能手机、恶意邮件、防火墙及系统漏洞。,Web渗透测试名词解释,渗透测试,必须征求客
3、户同意并授权 不具有破坏性 具有合法性 时间比较短 目的为查找应用漏洞并修补,APT攻击,强调隐蔽性,潜伏 可能会利用病毒感染等 窃取情报及资料,不合法 潜伏性,时间长至数年 窃取商业机密及军事情报,Web渗透测试名词解释,据国外Web应用安全联盟(WASC)统计,针对web的攻击及威胁共有49种,其中攻击分类为34个,弱点分类为15个。,Web渗透测试名词解释,注入攻击:SQL注入、SSI注入、XML注入、命令注入XSS攻击 CSRF攻击、 CRLF攻击 暴力破解、LFI攻击、RFI攻击 路径遍历、目录索引(浏览),SQL注入攻击,什么是SQL注入网站程序在使用SQL语句执行数据库操作时,没
4、有对用户提交的内容做出正确的处理,导致用户提交的内容破坏了程序原先的SQL语句结构,使得网站程序对数据库操作出错或改变预定的数据库操作行为,我们把网站程序的这种问题称为SQL注入漏洞。SQL攻击实质:利用web漏洞,实现数据库查询。,SQL注入攻击,SQL注入的危害 1、窃取信息 (管理员用户名和密码) 2、篡改数据 (update数据) 3、进行挂马 (update挂马) 4、绕过口令验证 (万能密码),SSI注入攻击,什么是SSI注入SSI注入(server-side-include),服务端包含,它允许攻击者在web应用中注入攻击代码,然后此代码会在服务器执行,并将结果返回给攻击者。常见
5、的攻击是利用shtml文档来实现。(IIS7禁用) http:/ Stylesheet Language Transformation,XSLT)注入和XPath/XQuery 注入。 http:/ http:/ and updatexml(1,concat(0x7e,(SELECT distinct concat(0x7e,username,0x3a,password,0x7e) FROM admin limit 0,1),0x7e),1) http:/ and extractvalue(1, concat(0x7e,(SELECT distinct concat(0x7e,username
6、,0x3a,password,0x7e) FROM admin limit 0,1),命令注入攻击,什么是命令注入Command Injection,即命令注入攻击,是指由于Web应用程序对用户提交的数据过滤不严格,导致黑客可以通过构造特殊命令字符串的方式,将数据提交至Web应用程序中,并利用该方式执行外部程序或系统命令实施攻击,非法获取数据或者网络资源等。PHP命令注入攻击存在的主要原因是Web应用程序员在应用PHP语言中一些具有命令执行功能的函数时,对用户提交的数据内容没有进行严格的过滤就带入函数中执行而造成的。,命令注入攻击,php命令注入,XSS攻击,什么是XSS攻击网站程序在接受用户
7、提交的内容后,没有对在HTML文件中有特殊含义的字符和关键字进行过滤,并将其直接显示在网页上,导致用户提交的内容改变了网页原有的结构。我们把网站程序的这类问题称为跨站脚本漏洞。XSS攻击发生在客户端,可被用于进行窃取隐私、钓鱼欺骗、偷取密码、传播恶意代码等攻击行为。,CSRF攻击,什么是CSRF攻击CSRF(Cross-site request forgery跨站请求伪造,也被称为“one click attack”或者“session riding”通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。尽管听起来像跨站脚本(XSS),但它与XSS非常不同,并且攻击方式几乎相左。XSS利用站
8、点内的信任用户,而CSRF则通过伪装来自受信任用户的请求来利用受信任的网站。 与XSS区别:XSS在客户端执行脚本,CSRF则是在WEB应用中执行操作。,CRLF攻击,什么是CRLF攻击CRLF注入攻击并没有像其它类型的攻击那样著名。但是,当对有安全漏洞的应用程序实施CRLF注入攻击时,这种攻击对于攻击者同样有效,并且对用户造成极大的破坏。 CRLF是一种广义的攻击,用在HTTP响应里,就是 HTTP Response Splitting,CRLF代表回车换行。,CRLF攻击,演示平台:WebGoatV5.3 http:/localhost:8080/webgoat/attack 用户名及密码
9、:guest/guest 测试代码:http:/ cn%0D%0AContent-Length%3A%200%0D%0A%0D%0AHTTP%2F1.1%20200%20OK%0D%0AContent-Type%3A%20text%2Fhtml%0D%0AContent-Length%3A%2039%0D%0A%0D%0A%3Chtml%3EHacked%20BY%%3C%2Fhtml%3E,暴力破解攻击,LFI攻击,什么是LFI攻击本地文件包含(Local File Include)是php脚本的一大特色,程序员们为了开发的方便,常常会用到包含。比如把一系列功能函数都写进fuction.ph
10、p中,之后当某个文件需要调用的时候就直接在文件头中写上一句就可以调用内部定义的函数。 本地包含漏洞是PHP中一种典型的高危漏洞。由于程序员未对用户可控的变量进行输入检查,导致用户可以控制被包含的文件,成功利用时可以使web server会将特定文件当成php执行,从而导致用户可获取一定的服务器权限。,LFI攻击,RFI攻击,什么是RFI攻击 远程文件包含(Remote File Inclusion),简称RFI,与其对应的是本地文件包含(Local File Inclusion,LFI),它们都是通过PHP的包含函数即:require(),require_once(),include()和in
11、clude_once()来使用。 通常情况下,LFI攻击威胁不大,因为本地服务器上的文件是比较确定的,攻击者想要上传带有攻击性代码的文件也不是件容易的事。RFI攻击才是我们需要防范的事。,RFI攻击,RFI攻击必备的三个条件allow_url_fopen = On (默认开启)allow_url_include = On (默认关闭)被包含的变量前没有目录的限制,目录遍历漏洞,什么是目录遍历 目录遍历(或路径遍历)(directory traversal/path traversal)是由于Web服务器或Web应用程序对用户输入文件名称的安全性验证不足而导致的一种安全漏洞,使得攻击者通过HTT
12、P请求和利用一些特殊字符就可以绕过服务器的安全限制,访问任意受限的文件(可以是Web根目录以外的文件),甚至执行系统命令。,目录遍历漏洞,目录浏览漏洞,什么是目录浏览漏洞 由于WEB服务器的不当配置,服务器允许访问者查看网站目录的文件列表。 目录浏览漏洞危害攻击者可以通过浏览网站目录了解网站结构,发现网站内部资料,导致敏感信息泄露。攻击者也有可能通过泄密文件获取网站的某些管理权限,或者籍此发现更多网站安全漏洞。,目录浏览漏洞,Web渗透测试名词解释,OWASP:开放式Web应用程序安全项目(OWASP,Open Web Application Security Project)是一个组织,它提
13、供有关计算机和互联网应用程序的公正、实际、有成本效益的信息。其目的是协助个人、企业和机构来发现和使用可信赖软件。目前有130个分会近万名会员。,Web渗透测试名词解释,Web渗透测试流程,Web渗透测基本技能,黑站三字经,Web渗透测基本技能-找后台,找后台的方法总结: 网站内部链接 Google搜索(intitle:后台|管理员|登录) SQL注入列目录 下载网站源代码(robots.txt) 暴力破解 社工找后台 域传送利用,Web渗透测基本技能-找后台,网站内部链接 案例:http:/ http:/ 搜索关键字:site: intitle:登录|后台|管理员,Web渗透测基本技能-找后台
14、,搜索关键字:site: inurl:login,Web渗透测基本技能-找后台,利用SQL注入列目录找后台 使用工具:阿D注入工具或者pangolin,Web渗透测基本技能-找后台,下载网站源代码 中国机械工业集团有限公司http:/ http:/ 案例:http:/ 利用某类CMS或者管理员习惯来查找后台。 http:/ 海马科技 http:/ http:/ 案例:中华人民共和国民政部 http:/ 案例:山东大学公安处 http:/ 利用Dedecms数据库查询出错信息保存于某inc文件特性来查找后台。 http:/ 演示站: http:/ Rational AppScan http:/
15、2、Acunetix Web Vulnerability Scanner http:/ 3、NetSparker2.3 http:/ Rational AppScan安装 安装注意: 需要在本地安装,不能远程安装。 针对win7系统安装时,可能会需要设置兼容性。 Awvs及netspartker安装则无需求。 需要登陆的网站扫描办法,第三方风险利用,第三方风险定义:除网站源码及数据库外的其它组件或者服务,这里我们暂时只考虑域名商,IDC,web中间件及其它软件带来的安全问题。 域名商:域名注册商,托管商等。 IDC:数据提供商,这里主要是指虚拟主机。 中间件:提供web应用环境支持的IIS,A
16、pache,nginx等 其它软件:Server-u/IIS Ftp等,第三方风险利用,域名风险利用:http:/www.wooyun.org/bugs/wooyun-2010-023519,第三方风险利用,第三方风险利用,IDC虚拟主机风险:旁站入侵,第三方风险利用,攻击Web中间件-IIS写权限利用,攻击Web中间件-解析漏洞,IIS 7.0/ Nginx );? 的文件,然后访问wooyun.jpg/.php,在这个目录下就会生成一句话木马 shell.php,攻击Web中间件-解析漏洞,IIS6.0 解析漏洞:http:/ IIS 6.0解析利用方法有两种 1.目录解析 /xx.asp
17、/xx.jpg 2.文件解析 wooyun.asp;.jpg,攻击Web中间件-解析漏洞,Nginx 8.03 空字节代码执行漏洞 影响版:0.5.,0.6, 0.7 = 0.7.65, 0.8 = 0.8.37 Ngnix在遇到%00空字节时与后端FastCGI处理不一致,导致可以在图片中嵌入PHP代码然后通过访问xxx.jpg%00.php来执行其中的代码。 漏洞利用: 1.上传经过处理的包含php一句话木马的图片文件.假如图片地址为:http:/ 2.访问http:/ 即可执行nginx.php中包含的PHP代码.,攻击Web中间件-解析漏洞,其它解析漏洞 在windows环境下,xx.
18、jpg空格 或xx.jpg. 这两类文件都是不允许存在的,若这样命名,windows会默认除去空格或点,黑客可以通过抓包,在文件名后加一个空格或者点绕过黑名单.若上传成功,空格和点都会被windows自动消除,这样也可以getshell。 如果在Apache中.htaccess可被执行.且可被上传.那可以尝试在.htaccess中写入: SetHandler application/x-httpd-php 然后再上传shell.jpg的木马, 这样shell.jpg就可解析为php文件,攻击Web中间件,Tomcat弱密码利用,WebLogic弱密码利用WebLogic是美国bea公司出品的一
19、个application server确切的说是一个基于Javaee架构的中间件,BEA WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。将Java的动态功能和Java Enterprise标准的安全性引入大型网络应用的开发、集成、部署和管理之中。默认管理端口:7001默认用户名及密码:weblogic/weblogic、system/system,攻击Web中间件,Jboss弱密码利用JBoss是全世界开发者共同努力的成果,一个基于J2EE的开放源代码的应用服务器。 因为JBoss代码遵循LGPL许可,可以在任何商业应用中免费使用它,而不用支付费用。2006年,Jboss公司被Redhat公司收购。JBoss是一个管理EJB的容器和服务器,支持EJB 1.1、EJB 2.0和EJB3.0的规范。但JBoss核心服务不包括支持servlet/JSP的WEB容器,一般与Tomcat或Jetty绑定使用。 JBOSS默认用户名密码:admin/admin http:/61.186.170.115/jmx-console/HtmlAdaptor,攻击Web中间件,实战演练,目标网站:http:/