黑客为什么可以做到无需知道源码的情况下找出系统漏洞?

来源:头条 ·2018年03月20日 15:05

题目可能不能表达完整我的意思,大体来说是:我作为一个比较普通的程序员,要读懂一个别人的源码已经很不易了,还要从中找出漏洞。比如你把windows的源码放我面前,我肯定看晕了,别说找漏洞了,何况windows还不开源。linux开源,我看的也很晕,只能一点点扣。还有web方面,不知道别人服务器的源码,怎么找出别人服务器的程序上的漏洞的呢。所以我觉得黑客或者说安全人员一定有和软件开发者不同的视角。

这么和你说吧:

我是一个渗透测试工程师,不说系统漏洞,我没学过底层C语言,但我搞的是web安全,也就是常说的渗透测试(黑盒测试)



还记得当年我16岁的时候,想着黑掉我们学校就可以吹牛逼给同学们听了,后来我真的把我们学校官网给黑了,并且提权拿到服务器!


  • 先说说怎么拿下我学校的网站吧:

首先是在我们学校官网上找到了一个注册登录的页面,但是注册入口被管理员删除,但我利用弱口令登录:admin,admin成功登录前台,但是进去前台的时候,找上传点,根本上传木马(一句话木马)上传不上去,也就是你上传PHP格式的木马,他服务器会给你重新名为.jpg的格式,然后在前台无果后就放弃了。

然后我就找注入漏洞,xss等等,最后以失败告终!

但我扫描网站的时候,发现网站根目录后面有一个/2 的目录,这个目录里居然还有个网站,这个源码已经很老了,然后我果断找到后台地址:www.xxx.com/admin_login.php

然后根据一种特别老的0day,用万能密码:admin'#,密码随便写,然后登录成功!

在这里和大家说说为什么会登录成功:因为这套源码是比较老的,然后我用#'进行登录,而我们只需要知道管理员的账户名,admin,然后#后面的'会吧密码给注释掉,所以登录了进去。


登录进去以后,我找到了个上传点,由于他是iis6.0的容器,我很容易就拿到了网站的webshell,最后也是提权进去到了网站的服务器!

这就是网站渗透的基本过程!

谢邀!

首先题主的感觉是对的,黑客确实比普通开发或者普通安全人员有着不同的视角。

普通测试人员一般对程序进行黑盒测试,也就是功能测试,数据驱动测试,或者规格说明测试。通过使用整个软件或某种软件功能来严格地测试, 而并没有通过检查程序的源代码或者很清楚地了解该软件的源代码程序具体是怎样设计的。测试人员通过输入他们的数据然后看输出的结果从而了解软件怎样工作。而一般的安全人员测试基本从白盒测试开始,也就是通过程序的源代码进行测试而不使用用户界面。这种类型的测试需要从代码句法发现内部代码在算法,溢出,路径,条件等等中的缺点或者错误,进而加以修正。对于黑客,他们挖洞的方式绝对不仅仅限于黑白盒测试,除了一些常规挖洞方式,比如sql注入、请求截获,参量,穷举ddos,xss漏洞等,黑客们还有一套他们自己编写的一套扫描漏洞的程序,他们挖洞的视角是全局视角,任何程序都不可能做的天衣无缝,黑客们总会在某个细微的地方找到漏洞。打个比方,普通测试用肉眼,而黑客们用的是显微镜。

另外,任何自称为黑客的人对各种底层技术研究得比较深入。

比如http请求的底层原理,要经历多少次握手多少次响应,每次携带什么类型的数据包,怎么才能截获数据包……平时我们见到的外挂程序很多都基于此,基本上都是截获篡改数据包。还有一方面,黑客的成长过程也会研究各种sdk的源码,特别是涉及程序安全的源码,然后有针对性编写一套套各种各样扫描漏洞的程序,以此帮助他们发现漏洞。

作为一个码农,接触的圈子里有不少研究安全的,当然他们还算不上黑客,仅仅是把别人的服务搞down机或者破解一些账号看看下程序后台到底有什么东西,以此作为可以吹牛或炫耀的谈资,没做什么伤天害理的事。

最后我想说的是,黑客和安全人员都是程序世界不可或缺的。黑客的攻,安全的防,一攻一防才推动着程序安全技术不断革新和发展,这种攻防模式才使得我们这些程序开发人员在编写代码时时刻保持警惕和审慎的态度,编写好每一行安全的代码。

如果您觉得回答得还不错,请点赞转发或者关注留言,您的支持才是我继续写作的动力!

【无情怀,不编码。做一个有情怀的码农,虽千万人,吾往矣!】关注java自学,为你导航领路,指点迷津,分享经验感受。欢迎关注留言,任何java技术问题可以留言私信。

2008~2017 家电新闻网 Inc. All rights reserved.