这是Pikachu漏洞靶场系列的第一篇~~(应该会连载吧)~~,先简单介绍一下Pikachu这个靶场。该靶场由国人开发,纯中文,且练习时遇到难点还可以查看提示,另外还有配套的学习视频。Windows下可直接在Wamp
/phpStudy
等集成环境下安装。相比之下,很多人都推荐的DVWA,由于其纯英文的环境,对于刚入门的小白十分不友好,可能部署完之后不知从何下手,容易劝退。所以这里推荐的Pikachu更适合刚入门Web渗透且正在寻找靶场的小伙伴。
从来没有哪个时代的黑客像今天一样热衷于猜解密码 —— 奥斯特洛夫斯基
“暴力破解”是一种攻击手段,在web攻击中,一般会使用这种手段对应用系统的认证信息进行获取。 其过程就是使用大量的认证信息在认证接口进行尝试登录,直到得到正确的结果。 为了提高效率,暴力破解一般会使用带有字典的工具来进行自动化操作。
理论上来说,大多数系统都是可以被暴力破解的,只要攻击者有足够强大的计算能力和时间,所以断定一个系统是否存在暴力破解漏洞,其条件也不是绝对的。 我们说一个web应用系统存在暴力破解漏洞,一般是指该web应用系统没有采用或者采用了比较弱的认证安全策略,导致其被暴力破解的“可能性”变的比较高。 这里的认证安全策略, 包括:
千万不要小看暴力破解漏洞,往往这种简单粗暴的攻击方式带来的效果是超出预期的!
Burp Suite
SwitchOmega
或FoxyProxy
users.txt
和pwd.txt
。由于是实验环境,故字典随意填写即可。注意其中需要包含任意一组正确的账号密码:admin/123456
、pikachu/000000
、test/abc123
# users.txt
test
root
admin
# pwd.txt
88888888
password
123456
复制
这里没有验证码,直接抓包爆破即可。
Intruder
模块Clusterbomb
,清除多余的变量,只选择账号密码即可Runtime file
,并在下面选择对应的字典,开始攻击填写表单及正确的验证码后提交并抓包,将数据包发送到Repeater
模块,多次发包发现只提示 username or password is not exists
,而不提示验证码出错,得知验证码可以重复利用。因此只需要手动填写正确的验证码即可爆破
Payload
,开始攻击即可这里验证码只在本地做了校验,跟上面一样手动输入正确的验证码并抓包即可。
token
是由服务端生成的一串字符串,作为客户端向服务端请求的一个标识。在前端使用用户名/密码向服务端发送请求认证,服务端认证成功,那么在服务端会返回token给前端,前端在每次请求时会带上服务端发来的token来证明自己的合法性。
这一关比前面的难一点
Intruder
模块admin
,只将密码和token
设置成变量,攻击类型选择Pitchfork
,因为每次的密码和token
需要同时替换,而不能组合使用。option
选项,下拉找到Grep Extract
栏,点击Add
,在弹出的窗口中点击Refetch response
发一次包并获得返回数据,在下面输入栏处输入token
,找到返回的token
值token
值并复制,同时在选中的情况下点击OK。然后将线程数设置为1
,并在最下方Redirections
重定向栏,选择Always
Payload
,这里第1个Payload
依然和前面一样选择对应的字典即可。第2个即token
变量则选择Recursive grep
递归搜索,最后将前面复制的token
值粘贴在下方文本框暴力破解一般使用BurpSuite中的Intruder模块,该模块可以通过对HTTP Request的数据包以变量的方式自定义参数,然后根据对应策略进行自动化重放。
Sniper
:只设置一个Payload,每个变量依次使用Payload进行测试。假设设置了2个变量,先将第1个变量使用Payload进行测试,全部测试完成后,再将第2个变量使用Payload进行测试。username=user&password=222&submit=Login
username=root&password=222&submit=Login
username=admin&password=222&submit=Login
username=111&password=user&submit=Login
username=111&password=root&submit=Login
username=111&password=admin&submit=Login
复制
Battering ram
:只设置一个Payload,所有变量同时被Payload替换,然后一起尝试username=user&password=user&submit=Login
username=root&password=root&submit=Login
username=admin&password=admin&submit=Login
复制
Pickfork
:每个变量设置一个Payload,分别使用Payload对变量同时替换username=user&password=111111&submit=Login
username=root&password=888888&submit=Login
username=admin&password=123456&submit=Login
复制
Clusterbomb
:每个变量设置一个Payload,分别使用Payload组合对变量进行替换username=user&password=111111&submit=Login
username=root&password=111111&submit=Login
username=admin&password=111111&submit=Login
username=user&password=888888&submit=Login
username=root&password=888888&submit=Login
username=admin&password=888888&submit=Login
username=user&password=123456&submit=Login
username=root&password=123456&submit=Login
username=admin&password=123456&submit=Login
复制
type="hidden"
的形式输出在表单中,在提交认证时一起提交,并在后台对其进行校验。但由于token值输出在了前端源码中,容易被获取,因此也就失去了防暴力破解的意义。网络安全入门到底是先学编程还是先学计算机基础?这是一个争议比较大的问题,有的人会建议先学编程,而有的人会建议先学计算机基础,其实这都是要学的。而且这些对学习网络安全来说非常重要。但是对于完全零基础的人来说又或者急于转行的人来说,学习编程或者计算机基础对他们来说都有一定的难度,并且花费时间太长。
这个阶段是所有准备进入安全行业必学的部分,俗话说:基础不劳,地动山摇
学习基础 时间:1周 ~ 2周:
① 了解基本概念:(SQL注入、XSS、上传、CSRF、一句话木马、等)为之后的WEB渗透测试打下基础。
② 查看一些论坛的一些Web渗透,学一学案例的思路,每一个站点都不一样,所以思路是主要的。
③ 学会提问的艺术,如果遇到不懂得要善于提问。
配置渗透环境 时间:3周 ~ 4周:
① 了解渗透测试常用的工具,例如(AWVS、SQLMAP、NMAP、BURP、中国菜刀等)。
② 下载这些工具无后门版本并且安装到计算机上。
③ 了解这些工具的使用场景,懂得基本的使用,推荐在Google上查找。
① 在网上搜索渗透实战案例,深入了解SQL注入、文件上传、解析漏洞等在实战中的使用。
② 自己搭建漏洞环境测试,推荐DWVA,SQLi-labs,Upload-labs,bWAPP。
③ 懂得渗透测试的阶段,每一个阶段需要做那些动作:例如PTES渗透测试执行标准。
④ 深入研究手工SQL注入,寻找绕过waf的方法,制作自己的脚本。
⑤ 研究文件上传的原理,如何进行截断、双重后缀欺骗(IIS、PHP)、解析漏洞利用(IIS、Nignix、Apache)等,参照:上传攻击框架。
⑥ 了解XSS形成原理和种类,在DWVA中进行实践,使用一个含有XSS漏洞的cms,安装安全狗等进行测试。
⑦ 了解一句话木马,并尝试编写过狗一句话。
⑧ 研究在Windows和Linux下的提升权限,Google关键词:提权
以上就是入门阶段
已经入门并且找到工作之后又该怎么进阶?详情看下图
给新手小白的入门建议:
新手入门学习最好还是从视频入手进行学习,视频的浅显易懂相比起晦涩的文字而言更容易吸收,这里我给大家准备了一套网络安全从入门到精通的视频学习资料包免费领取哦!