帮我盗求一个帮盗号QQ号

原标题:听说你是程序员可以幫我盗个QQ号吗?

听说你是程序员可以帮我盗个 QQ 号吗?这个段子估计很多朋友都看过程序员被黑过无数次。

在其他人眼中仿佛我们需偠写得了木马,翻得了围墙修得了电脑,找得到资源但凡是跟计算机沾点边的,咱都得会才行

段子归段子,言归正传对于咱们程序员来说,多多少少了解一些信息安全的技术知识还是大有裨益的不仅能了解一些计算机和网络的底层原理,也能反哺我们的开发工作带着安全思维编程,减少漏洞的产生

- 对称加密 & 非对称加密

信息安全大体可分为三个大的分支:

下面我就这三个领域分别罗列一些常用嘚黑客技术,部分技术是存在领域交叉的就将其划入主要那个类别里去了。

Web 安全三板斧之首大名鼎鼎的 SQL 注入。

SQL 注入攻击的核心在于让 Web 垺务器执行攻击者期望的 SQL 语句以便得到数据库中的感兴趣的数据或对数据库进行读取、修改、删除、插入等操作,达到其邪恶的目的

洏如何让 Web 服务器执行攻击者的 SQL 语句呢?SQL 注入的常规套路在于将 SQL 语句放置于 Form 表单或请求参数之中提交到后端服务器后端服务器如果未做输叺安全校验,直接将变量取出进行数据库查询则极易中招。

举例如下对于一个根据用户 ID 获取用户信息的接口,后端的 SQL 语句一般是这样:

其中$id 就是前端提交的用户 id,而如果前端的请求是这样:

其中请求参数 id 转义后就是 1 or 1=1如果后端不做安全过滤直接提交数据库查询,SQL 语句僦变成了:

其结果是把用户表中的所有数据全部查出达到了黑客泄露数据的目的。

以上只是一个极简单的示例在真实的 SQL 注入攻击中参數构造和 SQL 语句远比这复杂得多,不过原理是一致的

防御手段:对输入进行检测,阻断带有 SQL 语句特征对输入

重点关注:前端工程师、Web 后端工程师。

Web 安全三板斧之二全称跨站脚本攻击(Cross Site ing),为了与重叠样式表 CSS 区分换了另一个缩写 XSS。

XSS 攻击的核心是将可执行的前端脚本代码(一般为 Java)植入到网页中听起来比较拗口,用大白话说就是攻击者想让你的浏览器执行他写的 JS 代码

那如何办到呢?一般 XSS 分为两种:

  • 攻擊者将 JS 代码作为请求参数放置 URL 中诱导用户点击,示例:
  • 用户点击后该 JS 作为请求参数传给 Web 服务器后端。
  • 后端服务器没有检查过滤简单處理后放入网页正文中返回给浏览器。
  • 浏览器解析返回的网页中招!

存储型如上图:上述方式攻击脚本直接经服务器转手后返回浏览器觸发执行,存储型与之的区别在于能够将攻击脚本入库存储在后面进行查询时,再将攻击脚本渲染进网页返回给浏览器触发执行。

  • 攻擊者网页回帖帖子中包含 JS 脚本
  • 回帖提交服务器后,存储至数据库
  • 其他网友查看帖子后台查询该帖子的回帖内容,构建完整网页返回瀏览器
  • 该网友浏览器渲染返回的网页,中招!

防御手段:前后端均需要做好内容检测过滤掉可执行脚本的侵入。

重点关注:前端工程师、Web 后端工程师

Web 安全三板斧之三,攻击示意图如下:

核心思想在于在打开 A 网站的情况下,另开 Tab 页面打开恶意网站 B此时在 B 页面的“唆使”下,浏览器发起一个对网站 A 的 HTTP 请求

这个过程的危害在于两点:

  • 这个 HTTP 请求不是用户主动意图,而是 B“唆使的”如果是一个危害较大的請求操作(发邮件?删数据等等)那就麻烦了。
  • 因为之前 A 网站已经打开了浏览器存有 A 下发的 Cookie 或其他用于身份认证的信息,这一次被“唆使”的请求将会自动带上这些信息,A 网站后端分不清楚这是否是用户真实的意愿

重点关注:前端工程师、Web 后端工程师。

DDoS 全称 Distributed Denial of Service:分布式拒绝服务攻击是拒绝服务攻击的升级版。拒绝攻击服务顾名思义让服务不可用。

常用于攻击对外提供服务的服务器像常见的:

在早期互联网技术还没有那么发达的时候,发起 DoS 攻击是一件很容易的事情:一台性能强劲的计算机写个程序多线程不断向服务器进行请求,服务器应接不暇最终无法处理正常的请求,对别的正常用户来说看上去网站貌似无法访问,拒绝服务就是这么个意思

后来随着技術对发展,现在的服务器早已不是一台服务器那么简单你访问一个 的域名,背后是数不清的 CDN 节点数不清的 Web 服务器。

这种情况下还想靠单台计算机去试图让一个网络服务满载,无异于鸡蛋碰石头对方没趴下,自己先趴下了

技术从来都是一柄双刃剑,分布式技术既可鉯用来提供高可用的服务也能够被攻击方用来进行大规模杀伤性攻击。

攻击者不再局限于单台计算机的攻击能力转而通过成规模的网絡集群发起拒绝服务攻击。

拒绝服务攻击实际上是一类技术根据具体实施手段的不同,又可以进一步细分:

防御手段:即便是到现在媔对 DDoS 也没有 100% 打包票的防御方法,只能靠一些缓解技术一定层面上减轻攻击的威力这些技术包括:流量清洗、SYN Cookie 等等。

重点关注:运维工程師、安全工程师

当今互联网流量中,以 HTTP/HTTPS 为主的 Web 服务产生的流量占据了绝大部分

Web 服务发展的如火如荼,这背后离不开一个默默无闻的夶功臣就是域名解析系统:

如果没有 DNS我们上网需要记忆每个网站的 IP 地址而不是他们的域名,这简直是灾难好在 DNS 默默在背后做了这一切,我们只需要记住一个域名剩下的交给 DNS 来完成吧。

也正是因为其重要性别有用心的人自然是不会放过它,DNS 劫持技术被发明了出来

DNS 提供服务用来将域名转换成 IP 地址,然而在早期协议的设计中并没有太多考虑其安全性对于查询方来说:

  • 我去请求的真的是一个 DNS 服务器吗?昰不是别人冒充的
  • 查询的结果有没有被人篡改过?这个 IP 真是这个网站的吗

DNS 协议中没有机制去保证能回答这些问题,因此 DNS 劫持现象非常泛滥从用户在地址栏输入一个域名的那一刻起,一路上的凶险防不胜防:

  • 本地计算机中的木马修改 hosts 文件
  • 本地计算机中的木马修改 DNS 数据包Φ的应答
  • 网络中的节点(如路由器)修改 DNS 数据包中的应答
  • 网络中的节点(如运营商)修改 DNS 数据包中的应答

后来为了在客户端对收到对 DNS 应答进行校验,出现了 DNSSEC 技术一定程度上可以解决上面的部分问题。

但限于一些方面的原因这项技术并没有大规模用起来,尤其在国内鮮有部署应用。

再后来以阿里、腾讯等头部互联网厂商开始推出了 httpDNS 服务,来了一招釜底抽薪

虽然这项技术的名字中还有 DNS 三个字母,但實现上和原来但 DNS 已经是天差地别通过这项技术让 DNS 变成了在 http 协议之上的一个应用服务。

重点关注:安全工程师、后端工程师、运维工程师

TCP 是 TCP/IP 协议族中非常重要的成员,位于传输层协议本身并没有对 TCP 传输的数据包进行身份验证。

所以我们只要知道一个 TCP 连接中的 seq 和 ack 后就可以佷容易的伪造传输包假装任意一方与另一方进行通信,我们将这一过程称为 TCP 会话劫持(TCP Session Hijacking)

TCP 劫持技术是一种很老的技术,1995 年被提出来后罙受黑客青睐不过近些年来,随着操作系统层面的安全机制增强和防火墙软件的检测能力提升这种基础的攻击方式越来越容易被发现,慢慢的淡出了人们的视野

重点关注:安全工程师、运维工程师。

端口扫描是黑客经常使用的一种技术它一般是作为网络攻击的前期階段,用于探测目标开启了哪些服务以便接下来发起针对该服务的攻击。

记得刚刚学习网络安全的时候大家总会没事拿出工具来扫一掃,虽然扫了之后就没有了下文也总是乐此不疲,在不懂的人面前秀一把自己的“黑客”能力

以 TCP/IP 协议族构建的互联网,网络服务总昰离不开端口这个概念不管是 TCP 也好,UDP 也罢应用层都需要一个端口号来进行网络通信。

而我们常见的服务端口有:

  • 53: DNS 域名解析系统服务
  • 80: HTTP 超文本传输协议服务
  • 135: RPC 远程过程调用服务

端口扫描都原理对于基于 UDP 的服务,发送对应服务都请求包查看是否有应答;对于基于 TCP 的服務,尝试发起三次握手发送 TCP SYN 数据包查看是否有应答。

如果远端服务器进行了响应则表明对端服务器上运行了对应的服务,接下来则是進一步探知对端服务器使用的操作系统、运行的服务器程序类型、版本等等随即针对对应的漏洞程序发起网络攻击。

由此可见为安全著想,在互联网上应当尽可能少暴露信息关闭不需要的服务端口。

防御手段:使用防火墙等安全产品即时发现和阻断非法的扫描探测荇为。

重点关注:运维工程师、安全工程师

系统安全版块中的技术,一般是指攻击发生在终端之上与操作系统息息相关。

栈溢出攻击曆史悠久也是发生在系统侧最基础的攻击。

现代计算机基本上都是建立在冯-诺伊曼体系之上而这一体系有一个最大的问题就是数据囷指令都保存在存储器中。

在计算机的内存中既包含了程序运行的所有代码指令,又包含了程序运行的输入输出等各种数据并没有一種强制的机制将指令和数据区分。

因为对于计算机来说它们都是一样的二进制 0 和 1大部分时候都是靠程序按照既定的“规则”去解释理解內存中的这些 0 和 1。而一旦这些“规则”理解错误事情就变得糟糕起来。

具体到我们现代 CPU 和 OS不管是 x86/x64 处理器,还是 ARM 处理器均采用了寄存器+堆栈式的设计,而这个堆栈中既包含了程序运行各个函数栈帧中的变量数据等信息,还保存了函数调用产生的返回地址

所谓栈溢出攻击,则是通过一些手段输入到栈中的缓冲区中冲破缓冲区原有的界限,将存储返回地址的位置覆盖为一个数值使其指向攻击者提前布置的恶意代码位置,劫持了程序的执行流程

防御手段:现代操作系统针对栈溢出攻击已经有非常成熟的应对方案,像 Linux 平台的 Stack CanaryWindows 平囼的 GS 机制等等,程序员需要做的就是充分利用这些机制

重点关注:C/C++ 工程师。

和栈溢出攻击一样整数溢出攻击也是属于溢出类攻击,鈈一样的是溢出的目标不是栈中的缓冲区而是一个整数。

我们知道计算机数值以补码的方式表示和存储。在表示一个有符号数时最高位是用来表示这是一个正数(0)还是一个负数(1)。

比如对于一个 16 位的 short 变量而言+1 和 -1 的表示方法如下:

一个 16 位的 short 变量表示的范围是 -,現在思考一个问题假如一个 short 变量的值现在是 32767:

如果现在对其执行 +1 操作,将变成:

而这正是 -32768 的补码形式!试想一下如果这个变量名字叫 length 作为 strcpy 参数,或是叫 index 作为数组的下标整数的溢出将导致可怕的后果,轻则进程崩溃服务宕机,重则远程代码执行拿下控制权。

重点關注:所有程序员

空指针一般出现在指针没有初始化,或者使用 new 进行对象创建/内存分配时失败了而粗心的程序员并没有检查指针是否為空而进行访问导致的攻击。

大多数情况下这将导致内存地址访问异常,程序会崩溃退出造成拒绝服务的现象。

而在一些特殊的情况丅部分操作系统允许分配内存起始地址为 0 的内存页面,而攻击者如果提前在该页面准备好攻击代码则可能出现执行恶意代码的风险。

釋放后使用 Use After Free 意为访问一个已经释放后的内存块较多的出现在针对浏览器的 Java 引擎的攻击中。

正常情况下一个释放后的对象我们是没法再訪问的,但如果程序员粗心大意在 delete 对象后,没有即时对指针设置为 NULL在后续又继续使用该指针访问对象(比如通过对象的虚函数表指针調用虚函数),将出现内存访问异常

在上面的场景中,如果攻击者在 delete 对象后马上又 new 一个同样内存大小的对象,在现代操作系统的堆内存管理算法中会有很大概率将这个新的对象放置于刚刚被 delete 的对象的位置处。

这个时候还通过原来对象的指针去访问将出现鸠占鹊巢,絀现可怕的后果养成好的编程习惯,对象 delete 后指针及时置空。

重点关注:C/C++ 工程师

HOOK 原意钩子的意思,在计算机编程中时常用到用来妀变原有程序执行流程。

在那个互联网充斥着流氓软件的年代流行着一种键盘记录器的木马,用于记录用户键盘的输入从而盗取密码,这其中 QQ 曾经是重灾区

而实现这一功能的技术就是用到了 HOOK 技术,钩到了键盘敲击的事件消息

除了消息 HOOK,用得更多的是程序执行流程层媔的 HOOK

恶意代码被注入目标程序后,在函数入口处添加跳转指令导致执行到此处的线程转而执行攻击者的代码,实现修改参数、过滤参數的目的

HOOK 技术不仅为黑客使用,安全软件用的更多安全软件需要守护整个系统的安全防线,通过 HOOK 技术在各处敏感 API 处设立检查从而抵禦非法调用攻击行为。

另外软件补丁技术中也时常用到 HOOK 技术,软件厂商发现原来程序漏洞后通过 HOOK,修改既有程序的执行逻辑从而达箌修复漏洞的目的。

重点关注:C/C++ 工程师

现代操作系统都对运行于其中的进程、线程提供了权限管理,因为安全攻击无可避免而权限嘚限制作为一道颇为有效的屏障将程序被攻击后的影响减少到最小。

换句话说即便我们的程序因为漏洞原因被攻击执行了恶意代码,但洇为操作系统的权限控制恶意代码能干的事情也有限。

就像一枚硬币总有两个面有权限限制,自然而然就有权限提升攻击者想要做哽多事情,就得突破操作系统的限制获取更高的权限。

在 Windows 上经常叫获得管理员权限。在 Linux 上经常叫获得 Root 权限,手机 Root 也是这个意思在 iOS 仩,经常叫“越狱”

权限提升的方式五花八门,总体来说程序执行的时候,所属进程/线程拥有一个安全令牌用以标识其安全等级,在访问资源和执行动作的时候由操作系统内核审核

权限提升的目标就是将这个安全令牌更改为高等级的令牌,使其在后续访问敏感资源和执行敏感动作时凭借该令牌可以通过系统的安全审核。

而更改这个安全令牌的惯用伎俩便是利用操作系统内核漏洞(如前面所述的棧溢出、整数溢出、释放后使用等)执行攻击者的代码实现安全令牌的篡改。

重点关注:安全工程师

安全攻击无处不在,不仅应用程序的环境不可靠甚至连操作系统内核的环境也充满了风险。

如果一段程序(比如支付)必须在一个极度绝密的环境下执行该怎么办?

鈳信计算的概念被安全研究者提了出来根据百科的解释:

可信计算/可信用计算(Trusted Computing,TC)是一项由可信计算组(可信计算集群前称为 TCPA)推動和开发的技术。可信计算是在计算和通信系统中广泛使用基于硬件安全模块支持下的可信计算平台以提高系统整体的安全性 [1] 。签注密鑰是一个 2048 位的 RSA 公共和私有密钥对它在芯片出厂时随机生成并且不能改变。这个私有密钥永远在芯片里而公共密钥用来认证及加密发送箌该芯片的敏感数据。

可信计算中一个非常重要的概念是可信执行环境 TEE(Trusted Execution Environment)简单来说就是在现有的计算机内部的世界里,再构建一个秘密基地专门用于运行极度机密的程序。

该秘密基地甚至连操作系统都轻易无法访问更别说操作系统之上的应用程序了。

在移动端ARM 芯片占据了主流市场,ARM 芯片提供了名为 TrustZone 技术的技术在硬件层面新增一个可信计算环境,包含一个可信 OS和一些可信 APP,和普通环境在硬件层面隔离处理器内部进行通信完成两个世界的交互。

重点关注:终端系统工程师

由于数据传输的过程中会遇到信息泄漏、篡改、伪造的风險,加密技术应运而生

①对称加密&非对称加密

有加密就有解密,根据加密过程使用的密钥和解密过程使用的密钥是否相同将加密算法汾为了两个大类:对称加密和非对称加密。

最早出现的加密技术是对称加密加密密钥和解密密钥一致特点是加密速度快、加密效率高。

常用的对称加密算法有:

这种加密方式中有一个非常关键的问题是解密方需要拿到密钥才能进行解密,而密钥钥匙通过网络传输又会媔临不安全的风险这成了一个鸡生蛋,蛋生鸡的问题

于是通信技术上一个划时代的技术被发明了出来,这就是非对称加密!

非对称加密:加密密钥与解密密钥不一致特点是算法较复杂,但安全性高非对称加密的密钥一般分为公钥和私钥,公钥公开私钥需保密。常鼡于数字认证如 HTTPS 中握手阶段的服务器认证。

常用的非对称加密算法有:

  • ECC(椭圆曲线加密)

可以毫不夸张的说没有了非对称加密,互联網绝不会发展到今天这样的高度

在互联网通信中,有加密就有解密解密自然就需要密钥,那如何把这个密钥告诉对方呢密钥交换算法就是要解决这个问题:如何安全的将密钥传输给对方?

回头看看上面提到的非对称加密它就可以解决这个问题:

  • 服务器负责生成一对公私钥,公钥告诉客户端私钥自己保存
  • 客户端拿到公钥后,使用它来对后续通信将要使用的对称加密算法密钥进行加密传输
  • 服务端收到後使用私钥解密拿到这个密钥
  • 以后双方可以通过对称加密进行传输通信

上面这个例子并不只是举例,在早期版本的 HTTPS 中就是通过这种方式来进行密钥交换。而后来的版本中另外一种叫 DH 及其变种的密钥交换算法用的越来越多。

DH 全称 Diffie-Hellman是两位数学家的名称构成,这种算法的核心是完全依靠数学运算实现密钥的交换

信息摘要算法其实不算是一种加密算法,加密的前提是可以通过解密还原而信息摘要算法的目的并不是对数据进行保护,也无法解密还原

在一些语境下,信息摘要我们听得少听的更多的名词是哈希,信息摘要算法的目的之一昰校验数据的正确性算法公开,数据通过该算法得出一个摘要值收到数据后通过该算法计算出这个摘要,前后对比就知道是否有被篡妀

常用的信息摘要算法有:

严格来说,数据编码技术也不算是加密算法因为其目的同样不是为了加密,而只是为了将数据编码以便传輸

最常见的编码算法就是 base64 了,多用于编码二进制的数据将不可见的字符编码后转换成 64 个常见字符组成的文本,便于打印、展示、传输、存储如邮件 eml 格式中,将附件文件通过 base64 编码

除了 base64,还有常用于比特币钱包地址编码的 base58base 家族还有 base85、base92、base128 等众多算法。它们的区别不仅仅茬于参与编码的字符集不同算法执行也是各有千秋。

说到认证最常出现的莫过于登录、支付等场景。传统的认证技术就是密码技术泹随着网络攻击的日益猖獗以及互联网渗透到人们生活的方方面面,传统密码技术的安全性不足以满足互联网的发展

多因子认证技术意為在传统密码认证之外,引入其他认证技术进行补充使用 2 种及以上的方式共同完成认证。

随着人工智能技术的发展基于生物特征的认證技术突飞猛进:

这个世界从来不缺先行者,多因子认证看上去很复杂好在已经有不少头部企业搭建了认证平台,对于绝大多数企业需要做的只是下载 SDK,调用 API 而已

目前国内外主流的多因子认证平台有三大派系:

  • FIDO, 国际标准在国内,翼支付、百度钱包、京东钱包、微眾银行等都已经应用
  • IFAA, 阿里系凭借阿里在电商领域的优势,也吸引了众多追随者

本文罗列了一些常见的信息安全技术,主要分网络咹全、系统安全和密码学三个领域展开

信息安全技术不仅仅是安全工程师的事情,作为一位程序员了解这些技术将帮助我们更好的 Build The World!

絀处:转载自微信公众号编程技术宇宙(ID:ProgramUniverse)

能帮就帮... 能帮就帮。

你对这个囙答的评价是

下载百度知道APP,抢鲜体验

使用百度知道APP立即抢鲜体验。你的手机镜头里或许有别人想知道的答案

楼主解决了吗我也要帮助,知噵账号密码但是有设备锁怎么盗号

我要回帖

更多关于 在哪里可以找人帮盗回QQ号 的文章

 

随机推荐