零基础黑客入门(代码片段)

weber-security weber-security     2023-04-05     750

关键词:

从零学起成为一名黑客

如果是想利用学到的技术非法牟利,奉劝尽早放弃,君子爱财取之有道,想成为一名合格的白帽黑客,要遵守“江湖规矩”。

黑客,对于很多人来说,是一个神秘的代名词,加之影视作品夸张的艺术表现,使得黑客这个本来只专注于技术的群体,散发出亦正亦邪的神秘色彩。

黑客源自英文hacker一词,最初曾指热心于计算机技术、水平高超的电脑高手,尤
其是程序设计人员,逐渐区分为白帽、灰帽、黑帽等。

其中,白帽黑客被称为道德黑客。他们不会非法入侵用户网络,而是通过一系列测试检查公司安全系统的效率;黑帽黑客恰好与白帽黑客相反,他们往往为了个人利益去破坏用户网络数据,以此进一步实施网络犯罪;而灰帽黑客,同时拥有白帽和黑帽黑客的属性,围绕利益寻找足够的补偿。

下面来看一看,如何从零开始成为一名(白帽)黑客。

早期的互联网非常的单调,一般只有静态页面,现在,随着技术的发展,web上大多数站点实际上是web应用程序,在服务器和浏览器之间进行双向的信息传递。他们支持注册登录,金融交易,搜索及用户创作的内容。用户只需要拥有一个浏览器,就能实现各种功能。

Web 是指一个网站的前端页面到后端服务,比如我们常见的 JavascriptPHPPythonMysqljQueryDocker等,包括开发运维这些服务。

所以 Web 安全也就是从安全的角度探索 Web 的一种方式。

为了能够更简单的理解一些常见漏洞,我们首先来看一下这份试卷:

试卷
考生姓名:考生学号:

一、诗歌补写

床前明月光,。春眠不觉晓,

二、数学运算(在括号内填入数字)

3500 + 400 * 3 / 2 + 1 =( )
4 ( 1 + 2) / 3 * 400 +500 = ( )

考生姓名:__________

考生学号:__________

首先我们来看这个,名字和学号的填写,这里有“漏洞”吗?

答案是:有。

学生的姓名和学号都写在这儿,没有做任何保护措施,因此,你只要偷看了某人的试卷上的这部分内容,然后把你的试卷的上的姓名和考生学号写成和他一样的即可伪装成他的身份。

漏洞攻击成功。来看下一个:

一、诗歌补写

**
**

床前明月光,。春眠不觉晓,

这道题有漏洞吗?

答案是:有。

这道题的答案本来应该是“疑是地上霜”和“处处闻啼鸟”

但是,问题中并没有规定答案里不能添加标点符号,所以,我完全可以把“疑是地上霜,举头望明月,低头思故乡”以及“处处闻啼鸟,夜来风雨声,花落知多少”当做答案写进去。

漏洞再次进攻成功。下一个:

二、数学运算(在括号内填入数字)

3500 +400 * 3 / 2 + 1 = ( )

4 ( 1 + 2) / 3 * 400 +500 = ( )

这道题有漏洞吗?

答案是:有。

出题者规定了只能填入数字,但却没有说是什么数字,也没有规定多少位,那么我的答案可以是 中文数字「壹佰壹拾圆」、罗马数字「MCI」或 二进制「0000000000001101」。

漏洞第三次进攻成功。

这份试卷简单的模拟了Web漏洞的攻击思想,在实际中,我们打开一个网页提交登录或者是搜索都会经过服务器做的一系列处理又回到浏览器,在这个过程中我们提交的数据会被带入到一系列的填空题中,有的是我们能猜到的,有的则是意想不到的,有的会经过SQL查询进行填空,有的会被带入到命令行中进行执行,最后又把结果返回给浏览器进行填空,也就是最后我们看到的结果。

在数据的传输中,我们可以把 web 简单的分为几个层次:

  1. 浏览器:浏览器即客户端,提供客户端和服务器端的数据信息交互。

  2. http:客户端与web服务器进行交互时就存在web请求,这种请求都基于统一的应用层协议——HTTP协议来交互数据。http属于轻量级协议,无需连接,提供了对通信错误的容错性。

  3. 中间件:中间件是位于平台(硬件和操作系统)和应用之间的通用服务。

  4. Server容器:Server容器负责解析用户请求和脚本语言,类似的有Tomcat,JBoss等。我们访问网页看到是web容器处理后的内容。

  5. 数据库:动态页面可提供交互式的信息查询服务,主要依赖于web数据库的实现,对外提供包含 表单的Web页面作为访问接口,查询结果也以包含数据列表的Web页面形式返回给用户。

当然除了这些数据也有可能流向不些不可见的第三方服务商。

下图就展示了数据的传输流程,以及不同阶段经常出现的漏洞及其原因:

**
**

技术图片

我们常见的Web漏洞类型主要有SQL注入、XSS、远程命令执行以及越权等。以下我们分别用举例的形式为大家介绍这几种漏洞。

(SQL注入)

**
**

所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。

  1. select * from username = ____ and password=_____
  2. select * from username "test" or ""="" and password="123456"

(XSS)

**
**

XSS则是攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。

  1. 你好啊,尊敬的______

  2. 你好啊,尊敬的 xxx

**
**

(远程命令执行)

**
**

而远程命令执行,是用户通过浏览器提交执行命令,由于服务器端没有针对执行函数做过滤,导致执行命令。

  1. ping _______
  2. ping www.baidu.com & wget xxxxxxxxxxx

**
**

(越权)

**
**

越权漏洞是比较常见的漏洞类型,越权漏洞可以理解为,一个正常的用户A通常只能够对自己的一些信息进行增删改查,但是由于程序员的一时疏忽 ,对信息进行增删改查的时候没有进行一个判断,判断所需要操作的信息是否属于对应的用户,可以导致用户A可以操作其他人的信息。

  1. Cookie: uid=11426;
  2. Cookie: uid=1;

关于越权,就像我们刚刚试卷体中的姓名部分。

再展示一个数据的传输流程图,以便直观清晰的看到,数据在各层中是怎样运作的,以及可能发生的漏洞:

技术图片

了解了这几个漏洞之后我们可以看到原理都有些类似,也很简单,当然我们只要不再局限于概念名词就会发现 web 安全的大部分漏洞都很简单。更多时候,发现一个复杂的漏洞需要是只是耐心。 概念,不是一个神圣的东西,概念很多时候只是bullshit。很多概念的产生是因为需要认识和概括某种存在着的现象而不得已产生的,概念也许是必须的但并不是必然如此的。

换句话说,概念仅可以被看做是一种努力尝试描述后的结果之一。或者也可以说概念是提出这个概念的人自嗨的产物,跟其他人关系不大。甚至,有些概念是‘别有用心’的发明来合理化某种其实不必合理化但是存在的现象。

所以不要把自己拘泥于一个这样的概念中来思考所面临问题的实质。把概念忘了,你才可能看清楚你和事物本身的关系。

完全没有基础该从哪下手? 完全没有基础学习 Web 安全是件比较难的事情,所以建议如下:

  1. 工具

  2. 先用 AWVS 扫几个测试网站大体了解一下http://testphp.vulnweb.com/ http://testhtml5.vulnweb.com http://testasp.vulnweb.com http://testaspnet.vulnweb.com

  3. 把扫到的漏洞复现,了解怎么利用,主要了解:XSS、SQL 注入、远程代码执行

  4. 书籍《细说 PHP》

  5. 使用 PHP 写一个列目录的脚本,可以通过参数列出任意目录的列表

  6. 使用 PHP 抓取一个网页的内容并输出

  7. 使用 PHP 抓取一个网页的内容并写入到Mysql数据库再输出

  8. 手工找 http://testphp.vulnweb.com/ 的漏洞,对比 AWVS 的结果

  9. 书籍《黑客攻防---web安全实战详解》和《安全之路:Web渗透技术及实战案例解析(第2版)》

  10. 还是看不懂就找自己能看得进的 Web 安全的书。

此外,这是一条坚持的道路,三分钟的热情劝君尽早放弃;多练多想,不要离开了教程什么都不会了,最好看完教程自己独立完成技术方面的开发。

零基础学黑客,该怎么学?(代码片段)

经常有人问过这样一个问题。黑客是真的这么厉害吗?就目前而言,在黑客游戏或影视作品中黑客所展示的能力与现实是相差无几的(黑客帝国此种类型除外)唯一的区别是影视作品中的主角能够瞬控电力系统... 查看详情

零基础入门前端系列—关系选择器(代码片段)

【零基础入门前端系列】—关系选择器(十一)一、后代选择器定义:选择所有被E元素包含的F元素,中间用空格隔开语法:EF二、子代选择器三、相邻兄弟选择器四、通用兄弟选择器 查看详情

黑客入门教程(非常详细)从零基础入门到精通,看完这一篇就够了。

学前感言:1.这是一条坚持的道路,三分钟的热情可以放弃往下看了.2.多练多想,不要离开了教程什么都不会了.最好看完教程自己独立完成技术方面的开发.3.有时多google,baidu,我们往往都遇不到好心的大神,谁会无聊天天给你做解答.4.... 查看详情

转载零基础入门深度学习-感知器(代码片段)

【转载】零基础入门深度学习(1)-感知器机器学习深度学习转载自https://www.zybuluo.com/hanbingtao/note/433855无论即将到来的是大数据时代还是人工智能时代,亦或是传统行业使用人工智能在云上处理大数据的时代,作为一个有理... 查看详情

pythonmap函数-python零基础入门教程(代码片段)

...四.Pythonmap函数效率对比五.Pythonmap函数总结六.猜你喜欢零基础Python学习路线推荐:Python学习目录>>Python基础入门一.前言截至到目前为止,其实我们已经接触了不少的Python内置函数,而map函数也是其中之一, 查看详情

pythoninput函数-python零基础入门教程(代码片段)

...二.Pythoninput函数简介三.Pythoninput函数实战四.猜你喜欢零基础Python学习路线推荐:Python学习目录>>Python基础入门一.前言Python内置函数其实挺多的,其中input和eval算得上比较特殊,input属于交互式内置函数,eval函数能直接执行字... 查看详情

matlab零基础入门(代码片段)

...没用Matlab,简单复习了下,都是入门知识,零基础可读文章目录1.初步认识界面和命名2.数据类型和矩阵3.元胞数组和结构体3.1元胞数组3.2eye(3)3.3magic3.4结构体4.矩阵构造和四则运算4.1矩阵构造4.2矩阵运算4.3矩阵的下标4.... 查看详情

转载零基础入门深度学习-感知器(代码片段)

【转载】零基础入门深度学习(1)-感知器机器学习深度学习转载自https://www.zybuluo.com/hanbingtao/note/433855无论即将到来的是大数据时代还是人工智能时代,亦或是传统行业使用人工智能在云上处理大数据的时代,作为一个有理... 查看详情

pythoneval函数-python零基础入门教程(代码片段)

...言二.Pythoneval函数简介三.Pythoneval函数实战四.猜你喜欢零基础Python学习路线推荐:Python学习目录>>Python基础入门一.前言Python内置函数其实挺多的,其中input和eval算得上比较特殊,input属于交互式内置函数,eval函数能直接执行字... 查看详情

locust性能-零基础入门系列(代码片段)

本文主要讲解利用TaskSet类对测试场景进行管理。特别是当要纳入测试范围的功能点越来越多时,更需要考虑测试管理相关的内容。让性能测试更有条理和高效。以如下官方例子来讲解TaskSet的用法以及在测试运行中的一些细节。f... 查看详情

c#零基础入门知识点汇总(代码片段)

C#零基础入门知识点汇总前言一,基础语法(1~10)二,流程控制(11~20)三,数组相关(21~30)四,函数介绍(31~40)五,类和对象(41~50)六,面向对象 查看详情

python异常处理-python零基础入门教程(代码片段)

...中的else6.异常中的finally7.raise主动触发异常三.猜你喜欢零基础Python学习路线推荐:Python学习目录>>Python基础入门在Python开发中,代码书写时难免有疏忽或者意向不到的bug,导致程序run的过程中有可能会直接崩溃 查看详情

python零基础入门(代码片段)

Python数据分析基础八、字典与集合8.1字典8.1.1字典的创建和删除8.1.2通过“键值对”访问字典8.1.3遍历字典8.1.4添加、修改和删除字典元素8.1.5字典推导式8.2集合8.2.1集合的创建8.2.2集合的添加和删除8.2.3集合的交集、并集和差集运... 查看详情

python零基础入门(代码片段)

Python数据分析基础六、流程控制6.1程序结构6.2选择语句6.2.1最简单的if语句6.2.2if...else语句6.2.3if...elif...else语句6.2.4if语句的嵌套6.3使用and连接条件语句6.4使用or连接条件语句6.5使用not语句结语六、流程控制6.1程序结构计算机在解决... 查看详情

python零基础入门(代码片段)

Python数据分析基础七、循环结构语句7.1for循环7.1.1进行数值循环7.1.2遍历字符串7.2while循环7.3嵌套循环7.4跳转语句7.4.1break语句7.4.2continue语句结语七、循环结构语句7.1for循环for循环是一个计次循环,通常适用于枚举或遍历序列&#... 查看详情

python零基础入门(代码片段)

Python数据分析基础八、字典与集合8.1字典8.1.1字典的创建和删除8.1.2通过“键值对”访问字典8.1.3遍历字典8.1.4添加、修改和删除字典元素8.1.5字典推导式8.2集合8.2.1集合的创建8.2.2集合的添加和删除8.2.3集合的交集、并集和差集运... 查看详情

零基础1小时入门vue(建议收藏)(代码片段)

安装-CDN引入实例化Vue对象      el和data参数      methods方法      computed计算属性      属性绑定            v-bind:单向绑定            v-html:渲染成html代码            v-model:双向绑定... 查看详情

黑客零基础第三章-web漏洞实战-文件上传dc5(代码片段)

第五节内容讲述了文件包含漏洞LIF的利用原理,并在DVWA上进行了日志投毒结合LFI入侵的实验。本节以实战的方式,结合vulnhub靶机DC5让大家进一步熟练LFI结合日志投毒的实际应用。如果靶机部署有疑问,请留言!... 查看详情