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

放弃或者人工渗透

如果以上两部都没有结果,说明站点安全做的还可以,这时候就要出动人力做苦力渗透,旁路,apt渗透,或者直接放弃换另一个站点。

关于一些扫描渗透的工具和教程可以关注笔者,看笔者的文章和github仓。也可以留言索取。


虫虫安全

最简单明了的答案就是。所有电脑程序都需要通过编程语言来实现系统的构建。但所有编程语言都逃不了程序语法和运算逻辑等要点。简单举例asp,php语言等动态web语言。这些程序语言在俾发明者创造出的时候就已经存在一些语法或者逻辑上的问题。而黑客就是最熟悉这些程序语言的人群之一,所以他们会根据每个目标系统的特点,再通过已知的编程语言逻辑上存在的逻辑漏洞对系统进行测试。当然,编程语言的逻辑漏洞是可以通过规范的程序编写来避免错误。但现今的信息系统架构尤其复杂,已经不是以前的一两个静态页面那么简单了,所以很容易就会产生漏洞的。总结:有些系统漏洞是因人为的不规范导致的,也有些是因为系统工程庞大而出现的逻辑漏洞。而黑客就是通过寻找这些漏洞从而实现目的。


互联网稻草人

为什么黑客能够找到漏洞?

我是一个学Python的web开发的,在web这方面我比较了解,所以主要从这方面去讲解,其他的其实也很类似,但不一样,可以进行类比。

web方面其实不是需要知道源码的,当然,你能够知道的话,那可能就更方便了。首先,黑客会去试探你的服务器,如何试探呢?通过进行一些合法的请求,通过你返回的这些信息中,能够得出你的服务器类型,你是用什么语言来写的(当然,这个判断不一定准)。

就如一个黑盒子,黑客不断地根据输入和输出,来了解你的整个web(或者说是服务器或者网站)。

在网站方面,很多的漏洞都出在输入上,有输入的地方,就需要去防止黑客。这是为什么呢?举个例子,如果一个博客,它有一个评论功能,你评论完成之后就会返回到这个页面上(就是可以看到你的评论),假如,你现在输入的评论不是一个正常的评论,而是一段代码(js,h5,sql语句都有可能),再如果,你没有对这些东西进行过滤或者转义的话,那么你就会将一个可能带有不可预测性的代码加入到你的网站里面了。(很可能用户只要进入这个页面,那么他的信息就会暴露,然后进一步感染电脑。)

再说一下,用前端框架很容易出现漏洞,因为防黑客的必须是后端,前端是为了用户体验,减小服务器压力,如果由于前端将这些过滤的事情做了,而后端由于疏忽没有去做,那么黑客是完全可以绕过前端的检测,攻击后端(你的服务器。)

另一个很重要的就是sql注入,比如一个请求,你是直接用这些参数去数据库取数据,那么如果这些参数是一个sql语句,修改你的数据库权限(通常是通过一些其他的信息来获取数据库的类型,如查看报错信息等等),如果你进行了过滤,但是不周全的话,可以进行转码,然后你的数据库还是会执行这些漏洞。

我的回答差不多就结束了,想要获取更多关于黑客的好玩的东西,可以关注我哦~~~~


还有一点点需要提一下,就是如果获取到了你的服务器,数据库,代码等等,黑客通常会先查看一下已经出现的漏洞,进行穷举法(一般是用黑客软件进行)。

再对于软件这方面的,一个是,通过下载了恶意软件(通过获取了权限,然后就可以完全掌控你的计算机),一般是伪造相似的软件,其实你的应用软件越多,留下的后门的可能性就越大,每个软件都有一定的权限,但是如果这些权限被黑客利用的话,就是一场浩劫了。


Python雁横

黑客技术不值得炫耀!不需要宣传!

1,网络安全领域,一个漏洞一见光,它的生命周期就很快结束了。因为这个领域永远是攻防对立,此消彼长的前进。

2,高手在民间,一个高级黑客永远不会去炫耀技术。他甚至不缺钱,无论技术是他谋生的手段或者不是。自古邪不胜正,因为邪若胜正,人类早就灭亡了。所以一个高级黑客一定会利用自己的技术为世界也好,国家也罢,社会也对,做出贡献,推动他们更好的发展,实现自己的个人价值。


手机用户12409255373

WEB方面已经很多人回答过了,我就不再重复。我在来现在的工作岗位以前,因个人爱好从事过漏洞挖掘工作。

首先我们知道,任何程序,计算机在执行的时候都是二进制的,二进制可以直接翻译成汇编语言,因为汇编是对二进制的助记符,这个是没有任何难度的。

在没有源码的情况下,我们可以通过调试工具跟踪程序的执行,调试工具会把程序执行的每一步都翻译成汇编代码呈现给我们。常用的调试工具在ring3级有ollydbg,静态分析工具IDA等,这个层面主要是挖掘应用程序的漏洞,比如………网络游戏(我已经退出江湖很多年了,别问我怎么做,也没有保留源代码了)。

windows等操作程序静态分析可以在使用IDA将相关的dll文件等系统文件进行静态分析,动态跟踪就要在ring0级进行调试了,早期我们一般使用softice,现在都是windbg,双机联调或者虚拟机。

熟练的调试人员阅读这些汇编代码,很容易就能翻译成自己熟悉的任何一种高级语言代码,比如C语言,甚至易语言。通过反汇编,我们可以发现一部分简单的,低级的漏洞,通过动态跟踪可以修改相应的参数来验证漏洞,也可以发现新的漏洞。在熟练的技术,知识储备之外,更多的……发现漏洞还靠运气!


社保工作者

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

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

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

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

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

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


分享到:


相關文章: