type
status
date
slug
summary
tags
category
icon
password
General
2022年11月14日
13:39
HTTP Basics
http basics -3

魔术数字(magic number)是程式设计中所谓的直接写在程式码里的具体数值(如“10”“123”等以数字直接写出的值)。虽然程式作者写的时候自己能了解数值的意义,但对其他程式员而言,甚至制作者本人经过一段时间后,会难以了解这个数值的用途,只能苦笑讽刺“这个数值的意义虽然不懂,不过至少程式会动,真是个魔术般的数字”而得名。
解答:随意填表单进行提交,使用bp抓取http请求包得知

请求方式为POST,magic_num=17
HTTP Proxies
http proxies -6

解答
提交表单,使用bp进行抓包

将POST请求更改为GET,提交x-request-intercepted:true
把最后一行changeMe=doesn't+matter+really更改为changeMe=Requests are tampered easily

Developer Tools-4

在控制台输入webgoat.customjs.phoneHome()调用js得到随机数

Developer Tools-6

使用元素检查查看GO!标签,标签内容包含随机数。

CIA Triad
CIA是confidentiality, integrity 和availability三个词的缩写。CIA是系统安全设计的最终目标,常用术语CIA三要素(CIA Triad)来表述。CIA Triad可以用下图表示:

CIA三要素的第一项原则是保密性(Confidentiality)。保密性是通过什么样的手段可以保护数据、对象、资源机密性的概念,保密性的目的是限制组织未授权用户访问数据。加密(encryption)、访问控制(access control)、信息隐写(steganography)都是实现保密性的手段。针对保密性有很多攻击,包括捕获网络流量(capturing network traffic)、盗取密码文件(stealing password files)以及社会工程学(social engineering)、端口扫描( port scanning、肩窥(shoulder surfing)、窃听(eavesdropping)、嗅探(sniffing)、特权提升(escalation of privileges)等。
机密性还设计其它的概念、条件和方面,比如:敏感度、自由裁量权、危机程度、隐蔽、保密、隐私、隔离。
CIA三要素的第二项原则是完整性(Integrity)。完整性用来描述保护数据的可靠性和正确性。完整性保证没有未授权的用户修改数据。可以从以下三个方面检验完整性:
阻止未授权主体做出的修改
阻止授权主体可以做成未授权修改,比如:误操作
保证对象的内部和外部表示正确、真实,与子对象、父对象、同级对象的关系有效、一致并且可验证
针对完整性的攻击包括:病毒(viruses)、逻辑炸弹(logic bombs)、未经授权的访问(unauthorized access)、编码和应用程序错误(errors in coding and applications)、恶意修改(malicious modification)、故意替换(intentional replacement)和系统后门(system back doors)。
完整性还包括其它的概念、条件和方面:准确度、真实性、不可抵赖性、责任和职责、全面性。
CIA三要素的第三项原则是可用性(Availablity)。可用性表示可以及时给用户授权,资源的访问不间断。对可用性的威胁包括设备故障、软件错误和环境问题(热、静电、淹水、断电等)。也有专门针对可用性的攻击,比如DoS攻击、对象破坏和通信中断。
可用性的其它概念、条件和方面:易用性、可访问行和及时性。
保密性和完整性相互依赖,可用性依赖于保密性和完整性。
对于这些原则的违反不局限于蓄意攻击,人为错误、疏忽或者失职也会违反这些安全原则。
未能正确加密传输、在传输数据之前未能对远程系统进行完全身份验证、留下安全的访问点、访问打开后门的恶意代码、错误发送的传真、留在打印机上的文档,甚至当数据显示在监视器上时离开接入终端。这些都有可能因为人为错误造成保密性受损,可能是用户或者管理员,也有可能是本身公司的安全策略的疏忽和安全控制的配置错误。
同人为违反保密性一样,人为错误同样会导致数据一致性受损,比如:修改或删除文件;输入无效数据;更改配置,包括命令、代码和脚本中的错误;引入病毒;以及执行恶意代码(如特洛伊木马程序)。
可用性同样受到人为错误的威胁,比如:删除文件、过度使用硬件或软件组件、分配资源不足、错误标记或错误分类对象。
不同的组织对三要素会有不同的优先级定义,政府和军队通常会把保密性放在最高级别, 而一些企业内部的操作系统,可能会把可用性放在首位。
————————————————
版权声明:本文为CSDN博主「quqtalk」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
Crypto Basics
Base64 Encoding
Base64编码是一种用于将所有类型的字节转换为特定范围的字节的技术。这个特定的范围是ASCII可读字节。通过这种方式,您可以更容易地传输二进制数据,例如密钥或私钥。你甚至可以把它们打印出来或写下来。编码也是可逆的。所以如果你有编码的版本,你可以创建原始版本。
基本上,它遍历所有字节,并将每组6位转换为可读字节(8位)。结果是编码字节的大小增加了约33%。

使用Base64在线解密工具即可得到账号密码。
URL编码
在向服务器发送表单数据和请求参数时,URL编码被大量使用。由于URL中不允许有空格,因此这将被%20替换。其他角色也有类似的替换。
HTML编码
HTML编码确保文本在浏览器中按原样显示,而不是被浏览器解释为HTML。
UUEncode
Unix-2-Unix编码已用于发送电子邮件附件。
XOR编码
有时编码被用作存储密码的第一个和简单的混淆技术。例如,IBM WebSphere应用服务器使用XOR编码的特定实现在配置文件中存储密码。IBM建议保护对这些文件

使用WebSphere解码网站对字符串进行解密http://www.sysman.nl/wasdecoder/
Plain Hashing(普通散列)
哈希是一种密码学,主要用于检测原始数据是否已被更改。从原始数据生成散列。它基于不可逆密码技术。如果原始数据更改了一个字节,则得到的散列也会不同。
所以在某种程度上,这看起来是一种安全的技术。然而,当使用它作为密码时,它不是,甚至从来都不是一个好的解决方案。这里的问题是,您可以从字典中生成密码,并计算这些密码的各种变体。对于每个密码,您可以计算一个散列。这些都可以存储在大型数据库中。当你发现一个可能是密码的散列时,你只要在数据库中查找这个散列,就能找到密码。
一些哈希算法应该不再使用:MD5, SHA-1对于这些哈希,可以更改有效负载,使其仍然产生相同的哈希。这需要大量的计算能力,但仍然是一个可行的选择。
Salted Hashes
普通密码显然不应该存储在数据库中。对于普通散列也是一样。OWASP密码存储备忘单解释了在需要安全存储密码相关信息时应该使用什么。

原始签名
原始签名通常由甲方计算如下:
创建一个数据散列(例如SHA-256散列)
使用非对称私钥(例如RSA 2048位密钥)加密哈希
(可选)使用base64编码对二进制加密哈希进行编码
乙方也必须获得带有公开密钥的证书。这可能是以前交换过的。因此,至少涉及3个文件:数据、签名和证书。
CMS签名
CMS签名是指将数据+签名+证书和公钥集中在一个文件中,从甲方发送到乙方的一种标准化的方式。只要证书有效且未被撤销,乙方可以使用提供的公钥对签名进行验证。
SOAP签名
SOAP签名还包含数据、签名和证书(可选)。所有在一个XML有效负载。在计算数据的散列时涉及到一些特殊的步骤。这与这样一个事实有关,即从系统发送到系统的SOAP XML可能引入额外的元素或时间戳。另外,SOAP签名提供了由不同方对消息的不同部分进行签名的可能性。
电子邮件签名
发送电子邮件不是很困难。您必须填写一些数据,并将其发送到转发它的服务器,最终它将到达目的地。但是,也可以用不是您自己的电子邮件地址的FROM字段发送电子邮件。为了向你的收件人保证你真的发送了这封邮件,你可以在你的邮件上签名。受信任的第三方将检查您的身份并签发电子邮件签名证书。您可以在电子邮件应用程序中安装私钥,并将其配置为对发送的电子邮件进行签名。证书是在特定的电子邮件地址上颁发的,所有其他收到此电子邮件的人将看到发件人已经过验证的指示,因为他们的工具将使用受信任的第三方颁发的公共证书来验证签名。
PDF或Word或其他签名
Adobe PDF文档和Microsoft Word文档也是支持签名的例子。签名也在与数据相同的文档中,因此有一些关于什么是数据的一部分,什么是元数据的一部分的描述。政府通常发送带有PDF格式的官方文件,其中包含证书。

安装openssl配置环境变量,可使用openssl version查看版本。
把私钥写入private.pem文件
用openssl rsa -in ./private.pem -modulus查看模。