拿SQL注入来说,很久以前会用啊D和明小子这样界面友好、功能强大的工具,找当时的网站一把梭脱裤,进入后台上传个马菜刀一连,轻松getshell,然后挂个黑页截图发空间,朋友们纷纷666、大黑客。这些操作有一定的技术,但和现在比完全算不上什么了
随着时代的发展,上传的马(也就是文件型webshell)利用机会越来越少。现在前后端分离,最次也用个模版引擎(模版引擎也存在一些注入RCE漏洞,这里先不说)导致网站不会解析马,无法getshell。后来出现了内存马,但利用条件比文件型webshell高得多,比如用动态注册filter、利用javaagent和javassist等。对比以前简简单单上传一个文件,绕一下js验证,最多burp改个后缀,或者利用下中间件解析漏洞这样的方式,困难太多
注入还是存在的,但大概率你要绕过各种厂商的WAF(web应用防火墙),从一开始的替换空格双写大小写,到内联版本注释,垃圾字符注释换行,零零截断,再到Fuzzing和分块传输,都要自己手动一个一个地测试,有能力的尝试写sqlmap的tamper脚本。然而这些技巧只能绕一般的waf,比如某某狗、某塔和某锁等,先进一些的比如某斯盾、某宇盾、某池等基本是没法绕的。侥幸绕过的也不会持续时间太长,规则库随时更新。比如内联注释已经无法绕某某狗,前两年无敌的分块传输据说也失效了。况且就算你水平极高,绕过了这些高级WAF,结果程序员又校验了参数类型,加上预编译等手段,无解。这些防御手段甚至都和程序员无关,常用开发框架自己就给你处理了,比如mybatis的“#”自动预编译,其他持久层框架也都有各自的手段。可以这样说:哪怕想让程序员用这些框架故意写出存在注入的代码,这都是不容易的事情
所以,哪怕有了pangolin,sqlmap等注入神器,现在也很难成功注入。想再和十年前那样拿个站挂黑页脱裤等,难上加难,大概相当于让初中学生做高考试卷这样
但也谈不上绝对安全,java开发界人人用的spring系列框架,它不也爆出来多个高危漏洞,比如spel造成的RCE、RMI和JNDI功能造成的反序列化RCE等,未授权访问和目录遍历等低危漏洞也有不少。spring系列的这些漏洞利用条件其实较高,需要比较特殊的情况或者不常用的组件配合。当年struts2爆出的RCE漏洞,利用条件较低,部分甚至可以直接getshell,确实造成了巨大的危害和损失。这些漏洞可不简单,不是脚本小子能弄明白的,没有扎实的javaweb基础,大佬写好的分析文章可能都看不懂,更别说自己尝试去挖掘了。这也说明了安全行业门槛之高,挖开源框架漏洞的基本条件就是先成为一名优秀的程序员,能够忍住开发岗高薪的诱惑而坚持选择安全,一般人做不到
另一个角度来看:正因为非常难,现在还能在安全方面做出成绩的师傅,是值得佩服的。如果时间回到十年前二十年前,他们一定能成为传奇黑客,而现在很大一部分的所谓的黑客,其实都是招摇撞骗的骗子,什么手机号定位呀,获取对方手机聊天记录呀,监控微信呀,基本上都不存在,现在的黑客,只能说是运维人员,就是部署服务器,做安全防护的那些人。
但是也不能完全意义上定位定义这些人为非黑客,因为实际上,他们懂的大多数的攻击方式(毕竟需要做防护,首先要懂的如何攻击),而有些比较老的系统,本身存在的缺陷就非常非常的多,像最早期,账号密码都可以直接sql注入进行登录,利用漏洞进行系统侵入,其实也是黑客行为。
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...