基础入门:概念学习(笔记)
一、域名
域名:inurl:域名.xxx
二级域名、多级域名:inurl:XXX.域名.xxx
意义:二级域名、多级域名是给你的测试提供多种可能性,通过跳转页面等方式,对web端口页面进行漏洞扫描、渗透测试;
二、DNS
DNS:域名系统服务协议。是一种分布式网络目录服务,主要用于域名与IP地址的相互转换,以及控制因特网的电子邮件发送;
本地HOSTS与DNS的关系:把HOSTS文件看作是一个你手写的、放在家门口的“私人通讯录”。DNS是整个社会的“公共电话亭”。你找人(访问网站)时,必须先翻自己的私人通讯录(HOSTS),找不到才会去公共电话亭(DNS服务器)查询;
HOSTS文件:这是一个存在于你电脑(或手机)上的文本文件。你可以在里面手动写入 IP地址 和 域名 的对应关系。比如:192.168.1.1 www.example.com
CDN:CDN 的全称是 Content Delivery Network,即内容分发网络。
-
加速访问:让用户就近获取内容,降低延迟。
-
减轻源站压力:大部分请求都由CDN节点处理了,原始的服务器压力就小了很多。
-
提高可用性和安全性:如果一个节点坏了,会自动切换到其他节点。CDN也能在一定程度上防御DDoS攻击。
CDN与DNS的关系:DNS是CDN的“调度员”和“指路人”。 CDN必须依靠DNS来实现“让用户访问最近的节点”这个功能;
常见的DNS攻击:
1. DNS DDoS攻击(分布式拒绝服务攻击)
-
方式:攻击者控制大量“肉鸡”(被病毒感染或控制的计算机),向目标DNS服务器发送海量的虚假查询请求,导致DNS服务器资源耗尽(CPU、内存、带宽),无法处理正常的查询请求。
-
结果:所有人都无法通过这个DNS服务器解析域名,导致大面积断网。
-
变种:DNS反射放大攻击。攻击者伪造受害者的IP地址,向开放的DNS服务器发送一个小查询请求,但诱使DNS服务器向受害者返回一个巨大的响应数据包,从而用大流量冲垮受害者。
2. DNS缓存投毒(DNS Cache Poisoning)
-
方式:这是一种欺骗攻击。攻击者利用DNS协议的漏洞,向DNS服务器发送伪造的DNS响应信息,抢在真正的响应之前“骗”过DNS服务器。DNS服务器会将这个虚假信息(比如把
www.your-bank.com指向攻击者的钓鱼网站IP)缓存起来。 -
结果:之后所有使用这个DNS服务器的用户,在访问正常网站时,都会被引导到攻击者设置的恶意网站上,从而可能被盗取密码、银行卡信息等。
3. DNS劫持
-
方式:这是一种比缓存投毒更“底层”的攻击。攻击者不是攻击DNS服务器本身,而是劫持了用户与DNS服务器之间的通信通道,或者直接篡改路由器、运营商层面的DNS设置。
-
本地劫持:你的电脑中了木马,修改了你的HOSTS文件或本地DNS设置。
-
路由器劫持:你家路由器被破解,DNS设置被篡改。
-
运营商劫持(也称为中间人攻击):电信运营商为了推送广告,在HTTP层面强制将你不存在的域名解析到他们的广告服务器上。(这也是为什么现在大力推行HTTPS的原因之一)
-
-
结果:无论你想访问什么网站,都可能被强插广告,或者被引导到钓鱼网站。
4. 域名劫持
-
方式:这不是技术攻击,而是社会工程学攻击或对域名注册商的攻击。攻击者通过盗取你的域名管理密码,或者利用域名注册商的漏洞,直接将你的域名转移到他的名下,或者修改域名的DNS服务器地址。
-
结果:你的整个网站就彻底归别人控制了,流量可以任其随意引导。这是最严重的DNS攻击之一。
三、脚本语言:
常见的脚本语言有哪些:asp,aspx,php,jsp,javaweb,pl,py,cgi等
(1)PHP 小众型网站开发
(2)java-mvc大型网站开发
(3)python-django.flask
(4)asp,aspx,jsp等等
不同脚本类型与安全漏洞的关系:Web后端类(PHP、ASP)、动态全能类(Python、Ruby、Node.js、Perl)、以及编译型语言(Java、Go、C/C++)
A. PHP(最经典的Web后端语言)
-
常见漏洞:
-
文件包含 (LFI/RFI - Local/Remote File Inclusion):这是PHP的“特色漏洞”。由于PHP允许通过
include或require动态包含文件,如果开发者直接使用用户输入(如?page=userinfo.php)而不加过滤,攻击者可以包含任意文件,甚至执行恶意代码。 -
SQL注入:早期PHP开发中,很多教程直接使用字符串拼接的方式操作数据库(如mysql_query("SELECT * FROM user WHERE id=" . $_GET['id'])),导致SQL注入泛滥。
-
代码执行:PHP 提供了
eval()、assert()、preg_replace()的/e修饰符等函数,如果用户输入能传入这些函数,极易造成代码执行漏洞。 -
弱类型比较:PHP 的
==会进行类型转换,导致"0e12345" == "0e54321"为真(因为都被当作科学计数法转成0),这在哈希校验等场景下会引发逻辑漏洞。
-
B. JavaScript(Node.js / 前端)
-
常见漏洞:
-
跨站脚本 (XSS - Cross Site Scripting):这是JavaScript的头号漏洞。前端JavaScript直接操作DOM,如果开发者将用户输入的内容(如评论、用户名)直接插入页面而不进行转义,攻击者可以注入自己的脚本窃取Cookie或劫持用户会话。
-
原型链污染:这是Node.js中非常典型的一类漏洞。JavaScript 基于原型链继承,如果攻击者能修改
Object.prototype,就能改变所有对象的默认行为,通常导致拒绝服务或远程代码执行。 -
依赖库漏洞:Node.js 拥有庞大的 npm 生态。开发者可能引入了包含漏洞的第三方包(如历史上的
event-stream事件),导致供应链攻击。 -
不安全的反序列化:Node.js 的
eval()或某些JSON解析库如果处理不当,可能导致代码执行。
-
C. Python / Ruby(通用型脚本)
-
常见漏洞:
-
服务器端模板注入 (SSTI - Server Side Template Injection):这是Python和Ruby的高危漏洞。如果开发者使用Jinja2(Python)或ERB(Ruby)模板引擎,并将用户输入直接拼接到模板中,攻击者可以通过模板语法执行任意代码。例如在Flask的Jinja2中,
{{ config }}可以泄露配置,{{ ''.__class__.__mro__[2].__subclasses__() }}可以寻找执行系统命令的方法。 -
命令注入:Python的
os.system()或subprocess.Popen(),Ruby的反引号`如果拼接了用户输入,很容易造成命令执行。 -
路径遍历:在使用
open(filename)读取文件时,如果没有过滤../,攻击者可以读取服务器上的任意文件。 -
不安全的反序列化:Python 的
pickle模块在反序列化数据时,可以执行任意代码。Ruby的Marshal.load也存在类似问题。
-
D. Java / C# / Go(强类型编译型)
-
常见漏洞:
-
SQL注入(MyBatis/XML配置不当):虽然Java多用预编译(PreparedStatement)防止SQL注入,但如果开发者错误地使用了
${}(MyBatis中)而不是#{},依然会产生SQL注入。 -
XML外部实体注入 (XXE - XML External Entity):Java中很多XML解析库(如DOM4J、SAX)默认支持外部实体,如果解析了用户上传的恶意XML文件,可能导致内网端口探测、文件读取或拒绝服务。
-
反序列化漏洞:这是Java历史上最著名的漏洞之一(如Apache Commons Collections)。Java应用常常在Session、RPC(远程过程调用)中传输序列化对象,如果攻击者能提交恶意的序列化数据,就能在服务器端触发任意代码执行。
-
表达式注入:Java的SpEL、OGNL表达式(Struts2框架)如果解析了用户输入,会导致代码执行(著名的Struts2漏洞大多源于此)。
-
内存安全(Go/C/C++区别):
-
Go:内存安全,有垃圾回收,基本不存在缓冲区溢出。
-
C/C++:极易产生缓冲区溢出,这是最危险的漏洞之一。由于C/C++直接操作内存指针,不进行边界检查,
strcpy、gets等函数会导致栈溢出,攻击者可以直接劫持程序执行流程,获得服务器控制权
-
-
漏洞挖掘代码审计与脚本类型的关系:

四、后门:下次更容易入侵获取信息 and 提供攻击的路径
什么是后门?有哪些后门?
后门在安全测试中的实际作用:
关于后门需要了解哪些?(玩法、秒杀)
五、Web:
web的组成架构模型:
(1)网站源码:分脚本类型,分应用方向覆盖;
(2)操作系统:windows,linux
(3)中间件(搭建平台):apache,lis,tomcat,nginx
(4)数据库:mysql,access,mssql,oracle,Sybase,db2,postsql
架构漏洞安全测试:
为什么要从web层面为主为首:
六、web相关安全漏洞:
(1)WEB源码类的对应漏洞:
(2)SQL注入,上传,xss,代码执行,变量覆盖,逻辑漏洞,反序列化等
(3)WEB中间件对应漏洞:
(4)WEB数据库对应漏洞:
(5)WEB系统层对应漏洞:
(6)其他第三方对应漏洞:
(7)APP或PC应用结合类:
更多推荐
所有评论(0)