想学习Web安全,如何入门?

李志宽
• 阅读 505

开始前的思考

  1. 我真的喜欢搞安全吗?

  2. 我想通过安全赚钱钱?

  3. 我不知道做什么就是随便?

  4. 一辈子做安全吗?

\

这些不想清楚会对你以后的发展很不利,与其盲目的学习web安全,不如先做一个长远的计划。否则在我看来都是浪费时间。

【Web安全学习路线&资料】

首先你得了解Web

Web分为好几层,一图胜千言:

想学习Web安全,如何入门?

事实是这样的:如果你不了解这些研究对象是不可能搞好安全研究的。

这样看来,Web有八层(如果把浏览器也算进去,就九层!每层都有几十种主流组件!!!)这该怎么办?

一法通则万法通,这是横向的层,纵向就是数据流!搞定好数据流:从横向的层,从上到下→从下到上,认真看看这些数据在每个层是怎么个处理的。

\

零基础web安全学习计划

2.1 HTTP协议请求 (TIME: 一周)

对以下下知识点做了解学习
 http协议请求 
 http状态码              
 post / get 区别       

可以使用Chrome浏览器中F12查看“Network”标签中的HTTP请求响应,来了解HTTP协议请求.

想学习Web安全,如何入门?

2.2.危险的HTTP头参数 (TIME: 一周)

HTTP请求时需对一些必要的参数做一些了解,这些参数也会造成很严重的安全安全问题如下:

user_agent 
X-Forwarded-For
Referer
clien_ip
Cookie      

2.3 专业术语 (TIME: 一天)

了解如下专业术语的意思

  • webshell
  • 菜刀
  • 0day
  • SQL注入
  • 上传漏洞
  • XSS
  • CSRF
  • 一句话木马

想学习Web安全,如何入门?

2.4 专业黑客工具使用 (TIME: 10天)

熟悉如何渗透测试安全工具,掌握这些工具能大大提高你在工作的中的效率。

sqlmap     
Burpsuite  
nmap      
w3af       
nessus  
Appscan 
AWVS

2.5 脚本语言+代码审计入门 (TIME: 10天)

推荐php不用学的太灵通,我们又不是搞开发,了解基本语法和一些危险函数即可如:open exec 等函数会造成什么漏洞,了解了php中的危险函数会造成那些漏洞可举一反三套用到别的脚本当中 asp aspx java这些语言的危险函数可能只是写法不一样功能是相同的,了解这些后就可以来做一些web漏洞的代码审计了.

php入门学习  
php代码审计   

2.6 Sql注射 (TIME: 3天)

** 零基础就先用最有效的办法注入推荐注入工具 sqlmap如何使用?**

如果你不想只停留在使用工具的层面,那么你需要学习一下数据库,mysql sqlserver 随便先学一个前期学会 selsct 就行,php尝试自己写一个查询数据库的脚本来了解手工sql注入的原理,这样进步会很快,如果想深入可以把各种数据库注入都温习一边。关于需要掌握的技术点:

1. 数字型注入 
2.字符型注入 
3.搜索注入 
4.盲注(sleep注入) 
5.sqlmap使用 
6.宽字节注入
mysql入门  
Sqlmap     
sleep原理    
盲注sleep函数执行sql注入攻击

【Web安全学习路线&资料】

2.7 CSRF 跨站点请求 (TIME: 3天)

为什么会造成csrf,GET型与POST型CSRF 的区别, 如何防御使用 token防止 csrf?

2.8 XSS (TIME: 7天)

要研究xss首先了解同源策略 ,Javascript 也要好好学习一下 ,以及html实体 html实体的10 或16进制还有javascript 的8进制和16进制编码,

xss     
进制编码  
同源策略  

2.9 文件上传漏洞 (TIME: 7天)

了解下开源编辑器上传都有那些漏洞,如何绕过系统检测上传一句话木马

上传绕过

2.10 php-远程/本地 文件包含 (TIME: 10天)

去学习下include() include_once() require() require_once() fopen() readfile()这些php函数是如何产生文件包含漏洞, 本地包含与远程包含的区别。

以及利用文件包含时的一些技巧如:截断 /伪url/超长字符截断 等 。

2.11 php-命令执行 (TIME: 3天)

PHP代码中常见的代码执行函数有:

eval(), assert(), preg_replace(), call_user_func(), call_user_func_array(),create_function(), array_map()等。

了解这些函数的作用然后些搞清楚如何造成的代码执行漏洞。

2.12 ssrf (TIME: 3天)

1\了解ssrf的原理,以及ssrf的危害。

2\ssrf能做什么。

当我们在进行web渗透的时候是无法访问目标的内部网络的,那么这个时候就用到了ssrf漏洞,利用外网存在ssrf的web站点可以获取如下信息。

1.可以对外网、服务器所在内网、本地进行端口扫描,获取一些服务的banner信息;

2.攻击运行在内网或本地的应用程序(比如溢出);

3.对内网web应用进行指纹识别,通过访问默认文件实现;

4.攻击内外网的web应用,主要是使用get参数就可以实现的攻击(比如struts2,sqli等);

5.利用file协议读取本地文件等。

2.13 逻辑漏洞 (TIME: 7天)

常见的逻辑漏洞一般都会在如下地方出现

1.订金额任意修改--购物站经常出现 2.验证码回传 3.越权操作,其主要原因是没对ID参数做cookie验证导致。 4.找回密码存在设计缺陷 5.接口无限制枚举

2.14 xee(XML外部实体注入) (TIME: 5天)

当允许xml引入外部实体时,通过构造恶意内容,可以导致文件读取、命令执行、内网探测等危害

2.15 XPath注入 (TIME: 5天)

path注入攻击本质上和SQL注入攻击是类似的,都是输入一些恶意的查询等代码字符串,从而对网站进行攻击

2.16 服务器解析漏洞

Iis 解析漏洞  
nginx 解析漏洞 
tomcat 后台上传漏洞
jboss 上传漏洞
如果上述漏洞原理掌握的都差不多那么你就可以去找个工作实践一下了. 

# 加分项目-渗透信息搜集 (TIME: 15天)#

子域名搜集 利用DNS域名传送漏洞搜集二级域名

Liunx测试命令如下:

Dns服务器 1.1.1.1  测试域名http://wooyun.org
dig @1.1.1.1 http://sechook.org axfr
nmap --script dns-zone-transfer --script-args dns-zone-transfer.domain=http://wooyun.org -p 53 -Pn 1.1.1

实例查询苏宁DNS服务器

D:\deep>nslookup
默认服务器:  localhost
Address:  10.11.0.1
> set type=ns
> http://suning.com
服务器:  localhost
Address:  10.11.0.1
非权威应答:
http://suning.com      nameserver = http://lns1.zdnscloud.info
http://suning.com      nameserver = http://gns2.zdnscloud.net.cn
http://suning.com      nameserver = lns2.zdnscloud.biz
http://suning.com      nameserver = http://gns1.zdnscloud.net
>

查询苏宁 IP

C:\Users\jack>nslookup http://suning.com
服务器:  localhost
Address:  10.11.0.1
非权威应答:
名称:    http://suning.xdwscache.ourwebcdn.com
Addresses: 203.130.60.48   //对应ip
         203.130.60.49  //对应ip
         203.130.60.50  //对应ip
Aliases:  http://suning.com
http://Suning.com.wscdns.com //别名

在线二级域名爆破网站

https://dnsdumpster.com/
Netcraft - Search Web by Domain

工具获取二级域名

渗透测试中常用的在线工具--SecWiki 专题  参考链接
subDomainsBrute
wydomain 
theHarvester.py 
Fierce
Dig
knock
dnsspider
SubDomainscollect
SubBrute
dirfuzz

使用格式:

fierce  -dns http://baidu.com -threads 3
     subDomainsBrute.py http://suning.com
     python theHarvester.py -d http://suning.com -l 500 -b baidu -v 国内百度找的多
     python theHarvester.py -d 公司名 -l 500 -b baidu -v 
     python theHarvester.py -d http://suning.com -l 500 -b google -v国外站google多
     python theHarvester.py -d school -l 1000 -b all   all使用所有的搜索引擎进行搜索

subDomainsBrute使用需要安装依赖支持

报错信息:ImportError: No module named dns.resolver
     需要安装的库是 dnspython
      pip install dnspython
      没有pip的话, 可以用
     到https://github.com/rthalley/dnspython.git 下载
      cd dnspython
      python setup.py install

搜索引擎 Google新经验:

+ 把google可能忽略的字列如查询范围 
- 把某个字忽略
~ 同意词
. 单一的通配符
* 通配符,可代表多个字母
"" 精确查询 

代码托管泄漏信息搜索

Google:

http://andy-game.googlecode.com/svn-history/
Gitbub:   https://github.com/search?utf8=%E2%9C%93&q=%E5%A4%96%E7%BD%91+%E8%B1%86%E7%93%A3&type=Code&ref=searchresults

ip反查域名

http://dns.aizhan.com

二级兄弟域名搜集

查询邮件服务器信息
目标IP地址范围搜集
利用代码托管网站搜集目标信息

确定ip 地址范围

扫描c段
获取cdn真实ip地址
社会工程学

【Web安全学习路线&资料】

整理笔记

这个我觉得最重要,这是一个好习惯 可以让我们重新把学习的技术做一个总结和巩固。在总结的过程形成自己对技术的理解与创新。从而让书本上的知识变成自己的东西。 ​

点赞
收藏
评论区
推荐文章
李志宽 李志宽
3年前
Rootkits,黑客之颠!内核方向应该怎么学?
大家好,我是周杰伦。继续咱们的三个月入门系列文章,上次的三个月入门Web安全发布后,有读者留言让我写一写内核方面的,今天就来了。不过学习内核方向,需要的基本功确实有点多,梳理发现再怎么着压缩,三个月时间还是不够,最后压缩到了四个月。内核方向可能不如Web安全那么让人熟知,搞安全的学习内核干什么?安全领域中,主要有这几个方向会需要学习内核技术:1、Rootki
李志宽 李志宽
3年前
新手入门二进制安全和网络渗透,该选哪个比较好?
大家好我是周杰伦1方向选择最近,有很多粉丝都不约而同的问到了我一个问题:二进制安全和网络渗透,怎么选?今天这篇文章,就是尝试解答这个问题,希望对大家选择方向上有所帮助。首先先来理清楚,这两个方向分别是干嘛的。一般来说,二进制安全方向,主要是做逆向分析、漏洞挖掘与Exploit、内核安全、破解等工作。网络渗透主要是Web安全、内网渗透、漏洞扫描与利用、安全审
李志宽 李志宽
3年前
小白怎么成为一个黑客?按照这个路线来!
大家好,我是周杰伦。接下来我会写系列的文章,给大家整理下网络安全的详细的学习步骤和学习资源推荐。今天的主题是——Web安全。Web安全是网络渗透中很重要的一个组成部分,今天跟大家聊一下,如何在三个月内从零基础掌握Web安全。第一个月第一周:HTMLCSS,学会网页基本格式,学会编写基本网页,表单,学会用浏览器F12检查元素,查看源码推荐学习地址:H
Stella981 Stella981
3年前
IIS7.5全站301跳转,内页+带参数url,这才是真正的全站跳转
说好的转型安全领域,可是我还是忍不住要给大家分享这个教程。因为这个问题很常见,大部分人都遇到了(可能你没注意),困扰了我很久,相信这是一篇真正适合你的IIS301跳转教程。背景说到301跳转,作为seoer的你可能自以为是的觉得这是个简单的常识,可是你还真的不一定全会,看上去你的301跳转成功了,但是真的是301吗?真的是全站301吗?你找个
Wesley13 Wesley13
3年前
HTTP是时候安息了:HTTPS才是王道!
Mozilla安全工程师RichardBarnes近日发出呼吁,号召开发人员放弃不安全的HTTP协议,全面转向HTTPS。他希望浏览器能将更多的新功能仅开放给HTTPS,从而逐渐淘汰HTTP,目的自然是提高安全性。他在一份报告中写到:“为了鼓励Web开发人员从HTTP转向HTTPS,我想提议设置一个淘汰不安全HTTP的计划。笼统地说,该计划
Wesley13 Wesley13
3年前
C++中观察者模式中观察者提供接口让被观察者回调删除其自己安全吗?
思考如下情况:Observer类作为观察者,Handler类作为被观察者负责具体的任务执行,当任务执行完毕以后通知观察者完成。Observer收到调用以后删除Handler类。以下代码安全吗? 结果:1.安全。2.不优雅。3.handler在通过调用notify接口以后还可以访问自己的资源吗?可以,但是会得到随机值。/
李志宽 李志宽
3年前
太强了哎!突然发现一个网安神器~
大家好,我是周杰伦。关注我的朋友,基本上都是从事网络安全行业,或者打算进入这个行业的。那问大家一个问题:你们知道乌云吗?我估计,有相当一部分同学的回答是不知道。时间如果倒退到五年前,一个网络安全人说不知道乌云,一定会被当作门外汉笑话的。而如今五年过去,乌云,这个曾经盛极一时安全论坛,逐渐消失在人们的记忆中。乌云论坛创建于2013年,创始人之一就是ID为“剑心
Wesley13 Wesley13
3年前
5个步骤,教你瞬间明白线程和线程安全
记得今年3月份刚来杭州面试的时候,有一家公司的技术总监问了我这样一个问题:你来说说有哪些线程安全的类?我心里一想,这我早都背好了,稀里哗啦说了一大堆。他又接着问:那你再来说说什么是线程安全?——然后我就GG了。说真的,我们整天说线程安全,但是对于什么是线程安全我们真的了解吗?之前的我真的是了解甚微,那么我们今天就来聊聊这个问题。在探讨线程安全之前,我
Wesley13 Wesley13
3年前
ISO27001信息安全管理体系
0x00前言初入甲方,刚开始接触的应该就是ISO27001信息安全管理体系,你拿到的应该就是一整套安全管理类的文档。在甲方,稍微有点规模的公司很注重制度和流程,岗位职责分工明细,那么这些安全管理制度,就是你所能掌控的游戏规则,几个人的信息安全部生存之道。0x01ISO27001简介ISO/IEC27001信息安全管理体系
DevOpSec DevOpSec
1年前
运维交付安全基线检查
1.业务安全,业务上线运行要分配主机、网络、域名等资源,这些资源安全性决定了其背后业务线的基本安全性。2.为了满足等保要求,安全合规。3.业务能不能安全运行,间接影响产品稳定性。运维交付安全基线检查时业务运行安全的安全底座,下面我们来看看从主机、代理、逻辑、db、网络等层面如何做交付前基线检查。
李志宽
李志宽
Lv1
男 · 长沙幻音科技有限公司 · 网络安全工程师
李志宽、前百创作者、渗透测试专家、闷骚男一位、有自己的摇滚乐队
文章
89
粉丝
25
获赞
43