【Day1】一些常用的Web安全专业术语、HTTP协议的报文、SQL的增查改删、MySQL数据库与PHP的基本操作

记录学习Web安全从入门到入土的第一天

安全术语

今天一个同专业的学长告诉我,要想入这一行就得最起码先把专业术语搞明白,然后我就去百度了许多Web安全方面的术语,下面罗列部分。

一句话木马

一句话木马短小精悍,而且功能强大,隐蔽性非常好,在入侵中始终扮演着强大的作用。

中国菜刀

“中国菜刀”是一款由台湾技术大牛开发的web shell后门。只论技术性,“中国菜刀”配置简便、功能强大、使用方便,可以说是一款强大好用的“web管理工具”。

0day

0DAY漏洞 最早的破解是专门针对软件的,叫做WAREZ,后来才发展到游戏,音乐,影视等其他内容的。0day中的0表示zero,早期的0day表示在软件发行后的24小时内就出现破解版本,现在我们已经引申了这个含义,只要是在软件或者其他东西发布后,在最短时间内出现相关破解的,都可以叫0day。 0day是一个统称,所有的破解都可以叫0day。

payload

它的本意是负载的意思,在安全方面是指进行有害操作的部分。例如:数据销毁、发送垃圾邮件等。

EXP

它是exploit的缩写,意为利用,在安全方面意为漏洞利用,指的就是利用程序中的某些漏洞,来得到计算机的控制权(使自己编写的代码越过具有漏洞的程序的限制,从而获得运行权限)

反弹shell

与标准shell对应,本质上是网络概念的客户端与服务端的角色反转。通俗理解就是假设我们攻击了一台机器,打开了该机器的一个端口,攻击者在自己的机器去连接目标机器(目标ip:目标机器端口),这是比较常规的形式,我们叫做正向连接,但是有很多情况,正向链接不能使用,例如下面的情况。

1.某客户机中了你的网马,但是它在局域网内,你直接连接不了。

2.目标机器的ip动态改变,你不能持续控制。

3.由于防火墙等限制,对方机器只能发送请求,不能接收请求。

对于病毒,木马,受害者什么时候能中招,对方的网络环境是什么样的,什么时候开关机等情况都是未知的,所以建立一个服务端让恶意程序主动连接,才是上策。
所以这时候反弹shell就起作用了,它的作用就是攻击者指定服务端,受害者主机主动连接攻击者的服务端程序,就叫反弹连接。

提权

提高自己在服务器中的权限,主要针对网站入侵过程中,当入侵某一网站时,通过各种漏洞提升WEBSHELL权限以夺得该服务器权限。

序列化和反序列化

序列化(serialization)在计算机科学的数据处理中,是指将数据结构或对象状态转换成可取用格式(例如存成文件,存于缓冲,或经由网络中发送),以留待后续在相同或另一台计算机环境中,能恢复原先状态的过程。依照序列化格式重新获取字节的结果时,可以利用它来产生与原始对象相同语义的副本。对于许多对象,像是使用大量引用的复杂对象,这种序列化重建的过程并不容易。面向对象中的对象序列化,并不概括之前原始对象所关系的函数。这种过程也称为对象编组(marshalling)。从一系列字节提取数据结构的反向操作,是反序列化(也称为解编组、deserialization、unmarshalling)。
序列化在计算机科学中通常有以下定义:

对同步控制而言,表示强制在同一时间内进行单一访问。
在数据储存与发送的部分是指将一个对象存储至一个存储介质,例如文件或是存储器缓冲等,或者透过网络发送数据时进行编码的过程,可以是字节或是XML等格式。而字节的或XML编码格式可以还原完全相等的对象。这程序被应用在不同应用程序之间发送对象,以及服务器将对象存储到文件或数据库。相反的过程又称为反序列化

以上内容参考自:
https://www.cnblogs.com/iouwenbo/p/11277453.html
https://www.jianshu.com/p/892300bcf273
百度百科、维基百科、知乎

HTTP请求与响应报文

Request
GET

GET /562f25980001b1b106000338.jpg HTTP/1.1
Host    img.mukewang.com
User-Agent  Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36
Accept  image/webp,image/*,*/*;q=0.8
Referer http://www.imooc.com/
Accept-Encoding gzip, deflate, sdch
Accept-Language zh-CN,zh;q=0.8

第一部分:请求行,用来说明请求类型,要访问的资源以及所使用的HTTP版本.

GET说明请求类型为GET,[/562f25980001b1b106000338.jpg]为要访问的资源,该行的最后一部分说明使用的是HTTP1.1版本。

第二部分:请求头部,紧接着请求行(即第一行)之后的部分,用来说明服务器要使用的附加信息

从第二行起为请求头部,HOST将指出请求的目的地.User-Agent,服务器端和客户端脚本都能访问它,它是浏览器类型检测逻辑的重要基础.该信息由你的浏览器来定义,并且在每个请求中自动发送等等

第三部分:空行,请求头部后面的空行是必须的即使第四部分的请求数据为空,也必须有空行。

第四部分:请求数据也叫主体,可以添加任意的其他数据。
这个例子的请求数据为空。

POST

POST / HTTP1.1
Host:www.wrox.com
User-Agent:Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)
Content-Type:application/x-www-form-urlencoded
Content-Length:40
Connection: Keep-Alive

name=Professional%20Ajax&publisher=Wiley

第一部分:请求行,第一行明了是post请求,以及http1.1版本。

第二部分:请求头部,第二行至第六行。

第三部分:空行,第七行的空行。

第四部分:请求数据,第八行。

Response

example

HTTP/1.1 200 OK
Date: Fri, 22 May 2009 06:07:21 GMT
Content-Type: text/html; charset=UTF-8

<html>
      <head></head>
      <body>
            <!--body goes here-->
      </body>
</html>

第一部分:状态行,由HTTP协议版本号, 状态码, 状态消息 三部分组成。

第一行为状态行,(HTTP/1.1)表明HTTP版本为1.1版本,状态码为200,状态消息为(ok)

第二部分:消息报头,用来说明客户端要使用的一些附加信息
第二行和第三行为消息报头.
Date:生成响应的日期和时间;Content-Type:指定了MIME类型的HTML(text/html),编码类型是UTF-8.

第三部分:空行,消息报头后面的空行是必须的.

第四部分:响应正文,服务器返回给客户端的文本信息。

空行后面的html部分为响应正文。

以上内容摘自:https://www.cnblogs.com/ranyonsue/p/5984001.html

MySQL基本操作

连接MySQL

首先要配置MySQL变量(我有一篇介绍过了,不妨可以去看看),然后打开cmd,先打开到你MySQL的安装目录。
在这里插入图片描述
然后输入mysql -h localhost -u root -p
(-h是主机名默认为localhost,-u是用户名默认为root,如果你的数据库没有密码,那么你可以直接输入mysql然后回车就进入到了数据库,如果有密码那么输入完-p后回车会让你输入你的数据库密码,然后就进入了数据库)

出现下图就代表成功连接数据库
在这里插入图片描述

MySQL是基于SQL语句的,由于SQL语句在windows系统上不区分大小写所以以下大写均可以换为小写

查看数据

SELECT column_name,column_name FROM table_name;(表内指定列的内容)

SELECT column_name,column_name
FROM table_name
WHERE column_name operator(运算符大部分情况都是等号) value;(查找表内列的指定内容,最详细)

SELECT * FROM table_name;(表内所有内容)

增加数据(插入数据)

第一种:无需指定要插入数据的列名,只需提供被插入的值即可:
INSERT INTO table_name
VALUES (values1,values2,…);

第二种:需要指定列名及被插入的值:
INSERT INTO table_name (column1,column2,column3,…)
VALUES (value1,value2,value3,…);

删除数据

有三种:DELETE、DROP、TRUNCATE;

删除表内指定内容

DELETE FROM table_name
WHERE some_column=some_value;

删除整个表内内容

DELETE FROM table_name;

DROP table_name;
会把整个表删除,且释放空间(不可逆)

TRUNCATE table_name;
同样会删除表内所用内容,但不删除表的结构(可逆,能找回)

更新数据

更新表内指定内容

UPDATE table_name
SET column1=value1,column2=value2,…
WHERE some_column=some_value;

更新表内所有内容

UPDATE table_name
SET column1=value1,column2=value2,…;

去掉重复值

SELECT DISTINCT语句可以过滤掉表内重复信息

SELECT DISTINCT column_name,column_name
FROM table_name;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值