如何学习渗透测试?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何学习渗透测试?相关的知识,希望对你有一定的参考价值。

首先要根据自己的实际情况、确定学习的路线和方向的。就像建大楼,从顶端最华丽的那个地方开始,不可能成功。学渗透测试也一样,没选对入手的地方,导致学习过程中由于欠缺很多的知识点、很多概念理解不了、学习举步维艰、很容易半途而废。
现在我来分析下:
渗透测试属于信息安全行业,准确的说是网络计算机/IT行业
知道它行业属性,你大概就能清楚需要些什么样的基础知识了;下面是我从非计算机网络相关专业的同学想要学习渗透测试必须掌握的知识。
1)了解基本的网络知识、什么是IP地址(63.62.61.123),这个IP去掉点是扣扣学习群,可以免费获取学习课程。IP地址的基本概念IP地址的基本概念、IP段划分、什么是A段、B段、C段等
广域网、局域网、相关概念和IP地址划分范围。
2)端口的基本概念?端口的分类?
3)域名的基本概念、什么是URL、了解TCP/IP协议、
5)了解开放式通信系统互联参考模型(OSI)
6)了解http(超文本传输协议)协议概念、工作原理
7)了解WEB的静态页面和WEB动态页面,B/S和C/S结构
8)了解常见的服务器、例如、Windows server2003、Linux、UNIX等
9)了解常见的数据库、mysql、Mssql、、Access、Oracle、db2等
10)了解基本的网络架构、例如:Linux + Apache + MySQL + php
11)了解基本的html语言,就是打开网页后,在查看源码里面的Html语言
12)了解一种基本的脚本语言、例如PHP或者asp,jsp,cgi等
然后你想学习入门,需要学习以下最基础的知识:
1、开始入门学习路线
1)深入学习一种数据库语言,建议从MySQL数据库或者SQL Server数据库、简单易学且学会了。
其他数据库都差不多会了。
2)开始学习网络安全漏洞知识、SQL注入、XSS跨站脚本漏洞、CSRF、解析漏洞、上传漏洞、命令执行、弱口令、万能密码、文件包含漏洞、本地溢出、远程溢出漏洞等等
3)工具使用的学习、御剑、明小子、啊D、穿山甲(Pangolin)、Sqlmap、burpsuite抓包工具等等
2、Google hacker 语法学习
3、漏洞利用学习、SQL注入、XSS、上传、解析漏洞等
4、漏洞挖掘学习
5、想成为大牛的话、以上都是皮毛中的皮毛,但前提是以上的皮毛都是最基础的。
6、Linux系统命令学习、kali Linux 里面的工具学习、Metesploit学习
7、没事多逛逛安全论坛、看看技术大牛的文章、漏洞分析文章等
8、深入学习一门语言、Java或者Python等等,建议学习从Python开始学习、简单易学,容易上手。
9、提升自己的专业能力、把自己练成一个技术大牛、能给你带来一份稳定的高薪水工作,同时你还可利用自己的技术,额外的接些单子,做做副业,这个行业里是有很多单子可以接的。
10、当然想了解的可以来找我,我有时间会给你们答疑解惑的
参考技术A 一个是编程语言的基础,这里面要细分有很多,我大致说几个方向,一个是脚本语言,无论前端或者服务端脚本语言都要有所涉及,还要逐渐加强理解。并且到一定程度最好能理解一下几个主流的站点程序的源码大致框架,思考一下几个切入点。然后就是C、Java这类的对什么感兴趣选学什么,比如你以后对手机的安全方向感兴趣可以考虑从java入手,编程语言都有相同之处,一通百通。除了编程之外,还需要了解常见的数据库的内容,包括SQL的查询语法,正则表达式最好也能了解一点。再来就是网络工程里面的一些内容,需要知道网络的大致工作原理,端与端之间是怎么通过协议通讯的,之间遵守了什么法则。这些都需要楼主刻苦的钻研才能奠定扎实的基础。总之,楼主加油吧。想成为一个真正的渗透测试人员不是那么容易的。以上的基础是必备的,这些还只是概要。希望能帮到楼主。 参考技术B

学习渗透测试必须掌握的知识:

    了解基本的网络知识、什么是IP地址、IP地址的基本概念、IP段划分、什么是A段、B段、C段等

    端口的基本概念、端口的分类

    域名的基本概念、什么是URL、了解TCP/IP协议

    了解开放式通信系统互联参考模型(OSI)

    了解http(超文本传输协议)协议概念、工作原理

    了解WEB的静态页面和WEB动态页面,B/S和C/S结构

    了解常见的服务器、例如、Windows server2003、Linux、UNIX等

    了解常见的数据库、MySQL、Mssql、、Access、Oracle、db2等

    了解基本的网络架构、例如:Linux + Apache + MySQL + php

    了解基本的Html语言,就是打开网页后,在查看源码里面的Html语言

    了解一种基本的脚本语言、例如PHP或者asp,jsp,cgi

当然最重要的就是实战,说得再多,不去行动,你多久都不会提升自己的水平。

参考技术C 一个是编程语言的基础,这里面要细分有很多,我大致说几个方向,一个是脚本语言,版无论前端或者服权务端脚本语言都要有所涉及,还要逐渐加强理解。并且到一定程度最好能理解一下几个主流的站点程序的源码大致框架,思考一下几个切入点。然后就是C、Java这类的对什么感兴趣选学什么,比如你以后对手机的安全方向感兴趣可以考虑从java入手,编程语言都有相同之处,一通百通。除了编程之外,还需要了解常见的数据库的内容,包括SQL的查询语法,正则表达式最好也能了解一点。再来就是网络工程里面的一些内容,需要知道网络的大致工作原理,端与端之间是怎么通过协议通讯的,之间遵守了什么法则。这些都需要楼主刻苦的钻研才能奠定扎实的基础。总之,楼主加油吧。想成为一个真正的渗透测试人员不是那么容易的。以上的基础是必备的,这些还只是概要。希望能帮到楼主。 参考技术D 报班学习是最合适的,省去很多不必要的坑。

渗透测试学习—记录一次自测试渗透实战

写在前面

本文是作者入门web安全后的第一次完整的授权渗透测试实战,因为最近在总结自己学习与挖掘到的漏,无意中翻到了这篇渗透测试报告,想当初我的这篇渗透测试报告是被评为优秀渗透测试报告的,故在此重新整了一下,分享一下自己的思路与骚操作给大家。总的来说,就是一些web安全常见漏的挖掘,还有就是逻辑漏里自己发现的一些骚操作。如有不正确之处,敬请大家斧正。

WEB安全

一、XSS

首先,当我们拿到一个网站,最常见的操作就是进入网站的主页,查看网站有没有框框,xss最常见的测试方法就是“见框就插”,果不其然,我们在搜索框一“插”,就“插”出来了,虽然只是一个xss,但是这是我挖到的第一个啊,内心还是有些小激动的。本来框框还可以检查是否存在SQL注入,但是不巧的是,此处并没有。

以下是具体的操作:

1.进入url:

http://www.xxxx.com/?act=search&keyword=%27%22%28%29%3Cacx%3E%3Cscript%3Ealert%28%27xss%27%29%3C%2Fscript%3E

2.位置是在搜索框,这里存在xss

3.写入自己准备好的xss验证的payload:

%27%22%28%29%3Cacx%3E%3Cscript%3Ealert%28%27xss%27%29%3C%2Fscript%3E

4.证明在这里看哦:

与xss有关的,我们就挖掘到这里,下面我们进行下一处的挖掘。

二、弱

接下来,我们来到了用户登录模块,因为如果不进行用户登录的话,我们拥有的操作空间和权限是非常小的,而且登录页面,也是多发的页面,比如弱口令啊、短信轰炸啊、验证码可绕过啊等等,可惜的是在这里,我只验证成功了弱令,具体操作如下:

首先,我们来观察此网站的用户名,巧的是我们发现这个网站的用户名具有一致性,那么我们可以进行什么操作呢,没错,在此处我们可以利用神器burpsuite进行爆破,我们可以枚举网站有注册的用户,这其实也是一个用户名枚举洞,只是我把它和弱口令洞放在一起了,我们当然还可以用枚举出来的用户名,来爆破它们信息,下面是具体操作:

这是我爆破出来的用户名,username=mb12202,password=123456,在这吐槽一句,弱口令洞是一个永远也修复不完的通用洞

我们登陆以后,可以来查看用户的具体信息,可以看到手机号、IP、收货地址、绑定的QQ和微信等等,下面是手机号和IP信息,不过我们是看不到用户手机号的中间的四位数字的,但是这是我们可以进行一定的操作来查看的哦,具体操作请各位看官继续往下面看

下面是收货地址的信息

在这个功能处我们可以进行如下操作:

1、因为我们知道了mb12202的帐号也就是昵称还有,而且这个网站设置的是昵称和手机号都能够用相同的进行登陆,所以我们可以在此处爆破mb12202用户的手机号的中间4位,即可得到完整手机号

得到手机号的中间4位为3829

2、我们之前在用户的个人信息里的收件地址里还看到了另外的一个手机号码,我们在这里猜测,这个手机号也是一个注册用户,然后下一步我们就要开始爆破mb12202用户收件地址里的手机号1722xxxx607的,username=1722xxxx607,password=123456,果不其然,这个电话号码,果然也是一个注册用户,真是踏破铁鞋无觅处,得来全不费功夫啊

与弱口令有关的漏,我们就挖掘到这里,下面我们进行下一处漏的挖掘。

三、url重定向,可进行

既然我们挖掘上一处漏的时候已经掏出了我们的神器burpsuite,那么我们肯定不能把它抛弃,而是继续进行骚操作啊。依稀还记得当初挖到这个漏的时候是非常兴奋的,因为这个漏不容易被发现,所以,我们在漏的挖掘中一定要细,细到不能再细为止。

大体思路如下,首先在存在漏页面进行抓包,放包之后就会进入到如下图所示的请求包里,我们修改请求包里的ap_id参数,第一次放包后是别的数字,请记住一定要修改为378,如果修改成别的数字是没用的,放包后进入到响应包页面,对响应包进行修改,可以插入恶意图片以及链接,放包后,就会出现在网站里,用户点击后就会进行跳转。

下面是具体操作:

1.可插入图片的url:http://www.xxxx.com/index.php本网站有很多,在此仅举一例

2.修改请求包中的ap_id为378

3.修改响应包,插入恶意的图片以及链接

4.插入图片到网站中

5.用户点图片进入简书登录页面,可钓鱼

6.用户点击后,在根目录生成usernames.txt文档

7.查为123.123

与url重定向有关的,我们就挖掘到这里,下面我们进行下一处的挖掘。

逻辑

一、网站存在商品在未前扣除库存量的订单生成的逻辑

接下来我们就要进入到逻辑漏洞的挖掘环节了,大家有没有一点小期待啊,好了,不扯了,下面我们进入正题。逻辑是很多的工具所无法发现的,大部分都是手工挖掘出来的。

经过测试我们会发现,本网站内商品存在两项,总体思路如下:

第一项,在提交订单时,后端未校验用户购买的数量和前端提交的数量是否一致;

第二项,者可以通过更改购买某一商品,这一产品的最大数量,创建订单提交支付请求后,使攻者即使在未完成订单支付前,也会扣除商品库存,使恶意用户可以无限制下单,导致他人无法参与购买这一产品,恶意用户也可以将所有商品的库存修改为0,使其他用户购买时,将显示库存不足,无法正常购买。

具体操作如下:洞url位于生成订单逻辑处http://www.xxxxx.com/item-100480.html

1.首先查看商品首页,库存为101件

2.点击立即,进入我的购物车页面,查看购买订单

3.点击提交订单,抓取数据包,修改数量为101,放包

4.查看我的订单:

5.查看商城首页的这一商品,显示这一商品已无库存:

至此,网站存在商品在未支付前扣除库存量的订单生成的逻辑,验证成功,我们进入下一项漏洞的挖掘。

二、此网站存在代金券无上限获取拥有与使用的逻辑

挖掘这项,也需要我们大家非常细心,要有一定的骚操作,才会发现这项。

URL:https://www.xxxx.com/shop/index.php?act=pointvoucher&op=index

1.打开电脑版的网站,我们可以看到代金券的数量绕过了最大领取数量为50的限制,此时拥有量为62张

2.此时查看电脑版,代金券确实有最大兑换数量为50的限制,但没有限制用户拥有量,证明此处有bug

3.使用电脑版网站购买商品使用代券

商品库存为19件

4.那我们就买19次,使用19张代金券

查看当前商品已无库存

5.查看电脑版有19个订单

6.电脑端查看代金券还剩43张,62-19=43

7.重新在购物车获取7张代金券(本网站设置的是可以在购物车内获取代金券,只是代金券的最大数量限制为50),现在有50张,43+7=50

8.退掉那19张订单

​查看当前商品又有19个库存

9.查看电脑版已经没有订单了

10.电脑端查看代金券已有69张,50+19=69

而最初的代金券是62张,多了7张,69-62=7,这7张就是当代金券消耗到43张时,在购物车重新领取的7张代金券。

由此推断,当继续购买69件商品时,已有代金券数量将为0,(69-69=0),此时可以在购物车继续领取50张代金券,代金券数量为50,(0+50=50),然后再退掉那69张订单,此时代金券数量将变为119(50+69=119),同理,恶意者可以无上限拥有代金券。

结束语

至此,这次授权的渗透测试实战已结束,不论这篇文章里蕴含的技术含量怎么样,这都是作者刚入门web安全后的第一次完整的授权渗透测试实战,还是一些骚操作的,在此分享给大家,如有打码不规范,请勿私自渗透。

以上是关于如何学习渗透测试?的主要内容,如果未能解决你的问题,请参考以下文章

渗透测试—10个学习渗透测试的网站整理

渗透测试学习—记录一次自测试渗透实战

学些渗透测试,最快能多少时间?常规,别说看个人

如何学习渗透测试:初学者教程

什么是渗透测试?如何做渗透测试?

有没有用MacBook做渗透测试的,面对各种工具不支持该怎么办