如何进行web渗透测试
Web应用的渗透测试流程主要分为3个阶段:信息收集、漏洞发现、漏洞利用。
一、信息收集
在信息收集阶段,我们需要尽量多的收集关于目标web应用的各种信息,比如:脚本语言的类型、服务器的类型、目录的结构、使用的开源软件、数据库类型、所有链接页面,用到的框架等
二、漏洞发现
在这个阶段我们在做测试的时候要对症下药,不能盲目的去扫描,首先要确定目标应用是否使用的是公开的开源软件,开源框架等、然后在做深一度的漏洞扫描。
三、漏洞利用
针对不同的弱点有不同的漏洞利用方式,需要的知识点也比较多。一般这个阶段包括两种方式,一种是手工测试,一种是工具测试。
手工测试
手工测试是通过客户端或服务器访问目标服务,手工向目标程序发送特殊的数据,包括有效的和无效的输入,观察目标的状态、对各种输入的反应,根据结果来发现问题的漏洞检测技术。
工具测试
网络上有很多好用的免费利用工具,比如针对sql注入的sqlmap、针对软件漏洞的matesploit等。
渗透测试学习些啥呀
渗透测试的学习的内容有:网络基础,接下来掌握数据库的基础语法等,还有就是Linux的基础操作,必须要掌握一门开发语言。推荐选择【达内教育】。该学校师资力量雄厚,帮助学员从零基础到精通,教学经验丰富,值得信赖。感兴趣的话点击此处,免费学习一下
学习【渗透测试】必须掌握的知识:
1、了解基本的网络知识、什么是IP地址、IP地址的基本概念、IP段划分、什么是A段、B段、C段等。
2、了解http(超文本传输协议)协议概念、工作原理。
3、了解WEB的静态页面和WEB动态页面,B/S和C/S结构。
4、了解常见的服务器、例如、Windows server2003、Linux、UNIX等。
5、了解常见的数据库、MySQL、Mssql、、Access、Oracle、db2等。
6、了解基本的网络架构。
7、了解基本的Html语言,就是打开网页后,在查看源码里面的Html语言。
8、了解一种基本的脚本语言、例如PHP或者asp,jsp,cgi。
想了解更多有关渗透测试的相关信息,推荐咨询【达内教育】。秉承“名师出高徒、高徒拿高薪”的教学理念,是达内公司确保教学质量的重要环节。作为美国上市职业教育公司,诚信经营,拒绝虚假宣传是该机构集团的经营理念。该机构在学员报名之前完全公开所有授课讲师的授课安排及背景资料,并与学员签订《指定授课讲师承诺书》,确保学员利益。达内IT培训机构,试听名额限时抢购。
渗透测试需要学那些知识?
web黑客渗透测试入门需要学哪些?
学习web渗透,就是从零散到整体。我们入门门槛比较低,学会用工具就可以了。但是从入门到另一个层次就比较难了,也是大部分脚本小子迷茫的地方。
在web渗透的核心那就是思路,大量的思路来源是来自于自己的知识积累和丰富的经验。 学而不思则罔思而不学则殆。
当我找到了一个注入点:
首先放进工具一点,工具提示不存在注入。很奇怪,明明是存在的,发个某大牛,某大你不想说话并向你扔了个链接,你发现居然爆出了帐号密码。
太多的人都是处于这个超级小白阶段,这个阶段处于菜鸟阶段,我称为打哪是哪。
我来问问:
brup suite你会用?你会用来做什么,爆破?你知道怎么抓包分析post注入吗?你知道绕过上传时brup suite的神奇之处吗?
sqlmap 你会用?你会用来做什么,-u?-dbs?你知道怎么在sqlmap中执行sql语句吗?你知道sqlmap怎么反弹shell吗?
xss 你都懂?你知道xss平台那么多模块都有什么妙用吗?你知道尖括号过滤都有哪些绕过方式吗?
入门学习思考 可能遇到的问题 和新手需知:
你知道svn源代码泄露是什么?通过审计代码能做到什么吗?
你知道在发现st2漏洞命令执行时出现目录限制的时候怎么突破吗?有多少种方式可以突破,在什么样的场景下容易出现,如果有杀软怎么绕过吗?
你知道在3306允许外链的情况下可以爆破吗?你以为扫描器会把端口的风险都列出来给你吗?
你知道一个缜密的邮箱伪造社工可能就能导致网站沦陷吗?
你知道遇到weblogic等弱口令的时候如何去部署war拿shell吗?
你知道各种java中间件的端口是哪些吗?各种反序列化漏洞是怎么样快速定位数据库配置文件的吗?
你知道填充Oracle漏洞的利用方法吗?你知道扫描器都是误报吗?你知道手工怎么测试漏洞真实存在吗?
你知道oa系统都有哪些通用注入和无限制getshell吗?
你知道phpmyadmin可以爆破吗?什么样的版本可以爆路径,什么样的版本几乎拿不到shell吗?
太多太多了,我上面提到的也只是web方面的冰山一角,后面的提权、内网等等难题如海。
「Web渗透测试」第一天:基础入门-概念名词
域名(英语:Domain Name),又称网域,是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时对计算机的定位标识(有时也指地理位置)。由于IP地址具有不方便记忆并且不能显示地址组织的名称和性质等缺点,人们设计出了域名,并通过网域名称系统(DNS,Domain Name System)来将域名和IP地址相互映射,使人更方便地访问互联网,而不用去记住能够被机器直接读取的IP地址数串。
阿里云:阿里云域名注册
域名级数是指一个域名由多少级组成,域名的各个级别被“.”分开,简而言之,有多少个点就是几级域名。顶级域名在开头有一个点,“一级域名”就是在“com top net org”前加一级,“二级域名”就是在一级域名前再加一级,二级域名及其以上级别的域名,统称为子域名,不在“注册域名”的范畴中。
进行渗透测试时,其主域名找不到漏洞时,就可以尝试去测试收集到的子域名,有可能测试子域名网站时会有意向不到的效果,然后可以由此横向到主网站。
域名系统(英文:Domain Name System,缩写:DNS)是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS使用UDP端口53。当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。
本地HOSTS是存储的域名对应的IP地址,当我们访问一个网站输入域名时,首先会在本地的HOSTS文件查找是否有对应的IP地址,如果有就会直接解析成本地的IP进行访问。如果不能查到,那么会向DNS域名系统进行查询,找到对应的IP进行访问。
SDN全称是内容分发网络。其目的是让用户能够更快速的得到请求的数据。简单来讲,cdn就是用来加速的,他能让用户就近访问数据,这样就更更快的获取到需要的数据。
关系:通过dns服务我们可以很快的定位到用户的位置,然后给用户分配最佳cdn节点,但是这种调度方式存在一个问题,例如,当我 是北京联通的用户但是使用的却是深圳电信的ldns的话,调度服务器会给我分配到深圳电信的cdn服务器,这样就产生了错误的调度。
通常也称为域名系统投毒或DNS缓存投毒。它是利用虚假Internet地址替换掉域名系统表中的地址,进而制造破坏。当网络用户在带有该虚假地址的页面中进行搜寻,以访问某链接时,网页浏览器由于受到该虚假条目的影响而打开了不同的网页链接。在这种情况下,蠕虫、木马、浏览器劫持等恶意软件就可能会被下载到本地用户的电脑上。
DNS劫持又称域名劫持,是指在劫持的网络范围内拦截域名解析的请求,分析请求的域名,把审查范围以外的请求放行,否则返回假的IP地址或者什么都不做使请求失去响应,其效果就是对特定的网络不能访问或访问的是假网址。这类攻击一般通过恶意软件来更改终端用户TCP/IP设置,将用户指向恶意DNS服务器,该DNS服务器会对域名进行解析,并最终指向钓鱼网站等被攻击者操控的服务器。
域名劫持就是在劫持的网络范围内拦截域名解析的请求,分析请求的域名,把审查范围以外的请求放行,否则直接返回假的IP地址或者什么也不做使得请求失去响应,其效果就是对特定的网址不能访问或访问的是假网址。一旦您的域名被劫持,用户被引到假冒的网站进而无法正常浏览网页,用户可能被诱骗到冒牌网站进行登录等操作导致泄露隐私数据。
针对DNS的DDoS攻击通过控制大批僵尸网络利用真实DNS协议栈发起大量域名查询请求,利用工具软件伪造源IP发送海量DNS查询,发送海量DNS查询报文导致网络带宽耗尽而无法传送正常DNS查询请求。发送大量非法域名查询报文引起DNS服务器持续进行迭代查询,从而达到较少的攻击流量消耗大量服务器资源的目的。
所有放大攻击都利用了攻击者和目标Web资源之间的带宽消耗差异,由于每个机器人都要求使用欺骗性IP地址打开DNS解析器,该IP地址已更改为目标受害者的真实源IP地址,然后目标会从DNS解析器接收响应。为了创建大量流量,攻击者以尽可能从DNS解析器生成响应的方式构造请求。结果,目标接收到攻击者初始流量的放大,并且他们的网络被虚假流量阻塞,导致拒绝服务。
asp php aspx jsp javaweb pl py cgi 等
不同的脚本语言的编写规则不一样,程序产生的漏洞自然也不一样(代码审计)。
不同的脚本语言的编写规则不一样,程序产生的漏洞自然也不一样(代码审计)。
当第一次攻击之后,会留一个端口让攻击者下次从这个端口进行攻击
网页、线程插入、扩展、C/S后门
方便下次攻击进入
管道(攻击通道)
玩法,免杀
1. 网站源码:分脚本类型,分应用方向
2. 操作系统:windows linux
3. 中间件(搭建平台):apache iis tomcat nginx 等
4. 数据库:access mysql mssql oracle sybase db2 postsql等
Web应用一般是指B/S架构的通过HTTP/HTTPS协议提供服务的统称。随着互联网的发展,Web应用已经融入了我们的日常生活的各个方面。在目前的Web应用中,大多数应用不都是静态的网页浏览,而是涉及到服务器的动态处理。如果开发者的安全意识不强,就会导致Web应用安全问题层出不穷。
我们一般说的Web应用攻击,是指攻击者通过浏览器或者其他的攻击工具,在URL或者其他的输入区域(如表单等),向Web服务器发送特殊的请求,从中发现Web应用程序中存在的漏洞,进而操作和控制网站,达到入侵者的目的。
在做安全测试的时候,我们要从web页面层开始,因为较为方便,如果从操作系统进行,是十分不容易的。
SQL 注入、上传、XSS、代码执行、变量覆盖、逻辑漏洞、反序列化等
SQL注入
内核漏洞
网站渗透测试,怎么进行
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. 所有测试在执行前和维护人员进行沟通确认。
0条大神的评论