How I Spent 30 Days Chasing a $40,000 Bug Bounty And What I Learned the Hard Way
嗯,这篇文章讲的是一个漏洞猎手的经历,他发现了一个可能的远程代码执行漏洞,但后来发现其实是自己犯了错误。让我仔细想想,他是怎么一步步走到这一步的。
首先,他测试了一个AXIS摄像头,发现一个CGI脚本没有认证就可以访问。他用curl命令尝试注入命令,看起来像是成功了,摄像头离线了。然后他提交了漏洞报告,认为这是一个严重的RCE漏洞,可能获得4万美元的赏金。
但是提交后等待了一段时间,对方回复说无法复现。这时候他开始深入调查,发现了一些配置文件被修改的迹象,以为对方修复了漏洞。接着他和对方进行了多次沟通和升级请求,但最终发现其实漏洞并不存在。
关键问题出在curl命令的引号使用上。他用了双引号,导致命令在本地执行而不是目标服务器。因此他认为是摄像头被攻击了,实际上是自己的系统执行了命令。后来通过验证发现,所有的现象都是巧合,并非漏洞导致。
从中学到了几个重要的教训:使用单引号而不是双引号来避免本地执行;通过文件创建来验证RCE;注意认证提示;测试前先了解命令行为;不要仅凭时间巧合下结论;接受专家意见等。
总的来说,这篇文章强调了在漏洞研究中严谨性和正确方法的重要性。
一位漏洞猎手在测试AXIS摄像头时误将本地命令执行误认为远程代码执行(RCE),导致提交的漏洞报告被拒。错误源于使用双引号而非单引号导致命令在本地而非目标服务器执行。文章强调正确使用单引号、通过文件创建验证RCE、注意认证提示、测试前了解命令行为、避免仅凭时间巧合下结论以及接受专家意见的重要性。