OWASP Top 10
bilibili:https://www.bilibili.com/video/BV1yY4y1M7Cp
1.Injection
SQLInjection
见工具—sqlmap
Command Injection
命令注入发生在 Web 应用程序中的服务器端代码(如 PHP)在宿主机上进行系统调用时。它是一个 web 漏洞,允许攻击者利用这个系统调用在服务器上执行操作系统命令
一旦攻击者在 Web 服务器上有了立足点,他们就可以开始对您的系统进行通常的枚举,并开始寻找转向的方法。
遇到过滤可以尝试替换
e,g, strings—cat
2.Broken Authentication
Brute force attacks
Use of weak credentials
Weak Session Cookies
3.Sensitive Data Exposure
枚举文件,查看是否有sql,back等文件
也可以收集网站上的信息………….
Decrypt MD5, SHA1, MySQL, NTLM, SHA256, SHA512, Wordpress, Bcrypt hashes for free online
4.XML External Entity
XML 外部实体(XXE)攻击是一种滥用 XML 解析器/数据特性的漏洞。它通常允许攻击者与应用程序本身可以访问的任何后端或外部系统进行交互,并允许攻击者读取该系统上的文件。
什么是 XML? 在 Web 历史的早期,XML 作为一种数据传输格式很流行(“AJAX”中的“X”代表“XML”)。但它的受欢迎程度现在已经下降,有利于 JSON 格式
e.g.
<?xml version="1.0" encoding="UTF-8"?>
falconfeastAbout XXETeach about XXE
什么是 DTD 文档类型定义(DTD)可定义合法的XML文档构建模块。它使用一系列合法的元素来定义文档的结构。DTD 可被成行地声明于 XML 文档中,也可作为一个外部引用。DTD实体是用于定义引用普通文本或特殊字符的快捷方式的变量。
now let's understand how that DTD validates the XML. Here's what all those terms used in note.dtd
mean
]>
- !DOCTYPE note - Defines a root element of the document named note
- !ELEMENT note - Defines that the note element must contain the elements: "to, from, heading, body"
- —define entity
payload
1.攻击者尝试从服务端提取数据:
<?xml version="1.0"?>
]>
&read;
2.攻击者通过将上面的实体行更改为以下内容来探测服务器的专用网络:
]>
几乎所有 XXE 漏洞的出现都是因为应用程序的 XML 解析库支持应用程序不需要或不打算使用的潜在危险 XML 功能。防止 XXE 攻击的最简单和最有效的方法是禁用这些功能。
5.Broken Access Control
secenario 1
应用程序在访问帐户信息的 SQL 调用中使用未经验证的数据
pstmt.setString(1, name);
rs = pstmt.executeQuery();
if(rs.next()){//用户存在
flag = true;
}
} catch (SQLException e) {
e.printStackTrace();
}
return flag;
}
对云服务(如 S3存储桶)配置不当的权限
默认密码未修改
http头透露过多信息
过于详细的错误消息,允许攻击者发现有关系统的更多信息
7. Cross-site Scripting
跨网站脚本,也被称为 XSS 是一个安全漏洞,通常发现在网络应用程序。它是一种注入类型,允许攻击者执行恶意脚本并在受害者的机器上执行
1.stored XSS
最危险的 XSS。这就是恶意字符串来自网站数据库的地方。这种情况经常发生在网站允许用户输入时没有经过清理(删除用户输入的“坏部分”)插入到数据库中
2.reflected XSS
恶意有效载荷是受害者向网站请求的一部分。该网站包括这个有效负载回应用户。总而言之,攻击者需要欺骗受害者单击 URL 来执行其恶意负载
3.DOM XSS
DOM 代表文档对象模型,是 HTML 和 XML 文档的编程接口。它表示页面,以便程序可以更改文档结构、样式和内容。网页是一个文档,这个文档既可以显示在浏览器窗口中,也可以作为 HTML 源
XSS Payloads
1.
2.Writing HTML (document.write)
3.XSS Keylogger (http://www.xss-payloads.com/payloads/scripts/simplekeylogger.js.html) - You can log all keystrokes of a user, capturing their password and other sensitive information they type into the webpage.
4.Port scanning (http://www.xss-payloads.com/payloads/scripts/portscanapi.js.html) - A mini local port scanner (more information on this is covered in the TryHackMe XSS room).
5.XSS-Payloads.com (http://www.xss-payloads.com/) is a website that has XSS related Payloads, Tools, Documentation and more. You can download XSS payloads that take snapshots from a webcam or even get a more capable port and network scanner.
document.querySelector('#thm-title').textContent = 'I am a hacker'
8.Insecure Deserialization
不安全的反序列化就是用恶意代码替换应用程序处理的数据,允许攻击者使用从 DoS (分布式拒绝服务攻击)到 RCE (远程代码执行)的任何东西来获得一个临时场景中的立足点。
object
objects allow you to create similar lines of code without having to do the leg-work of writing the same lines of code again.
Deserialization
序列化: 一个游客在街上向你问路。他们在找当地的地标,结果迷路了。不幸的是,英语不是他们的强项,你也不会说他们的方言。你是做什么的?你画一张通往地标的路线图,因为图片跨越了语言障碍,他们能够找到地标。漂亮!你刚刚序列化了一些信息,然后游客反序列化它来找到地标
所以序列化是将编程中使用的对象转换为更简单、兼容的格式,以便在系统或网络之间传输,从而进一步处理或存储的过程
反序列化与此相反; 将序列化的信息转换为它们的复杂形式——应用程序将理解的对象
简单地说,不安全的反序列化发生在来自不可信方(例如黑客)的数据由于没有过滤或输入验证而被执行时; 系统假设数据是可信的,并且将毫无保留地执行它
Cookies
一种快捷的验证机制,虽快但危。
9.Components With Known Vulnerabilities
利用已知漏洞,以前打靶用到过,我们再进行一次演示,但非常简单。
10.Insufficient Logging and Monitoring
multiple unauthorised attempts for a particular action (usually authentication attempts or access to unauthorised resources e.g. admin pages) requests from anomalous IP addresses or locations: while this can indicate that someone else is trying to access a particular user's account, it can also have a false positive rate. use of automated tools: particular automated tooling can be easily identifiable e.g. using the value of User-Agent headers or the speed of requests. This can indicate an attacker is using automated tooling. common payloads: in web applications, it's common for attackers to use Cross Site Scripting (XSS) payloads. Detecting the use of these payloads can indicate the presence of someone conducting unauthorised/malicious testing on application