2021总结web渗透测试岗位面试题(个人亲身经历的总结)

目录

 

1·拿到一个待检测的站,你觉得应该先做什么?

2·xss

3·sql注入

4·真实ip

5.多地ping

6·应急响应

7·代码注入漏洞

8·sql注入如何读写文件,二次注入,防御方式

9·csrf和xss区别

10·文件上传的后段绕过,防御方式

11·中间件漏洞——IIS、Apache、nginx、Lighttpd、Tomcat

12·xxe与ssrf

13·rce讲一下,php函数eval和system popen

14·缓冲区溢出

15·数据库提权(mysql,mssql,access,oracle)

16·常见的php序列化与反序列化函数

17·如何突破注入时字符被转义?

18·某个防注入系统,在注入时会提示:

19·如何利用这个防注入系统拿shell?

20·说出至少三种业务逻辑漏洞

21·宽字节注入产生原理以及根本原因

22·代替空格的方法

23·mysql的网站注入,5.0以上和5.0以下有什么区别

24·TCP/IP——TCP三次握手的过程以及对应的状态转换

25· TCP和UDP协议区别

26·流量分析

27·防火墙

28·登录框


1·拿到一个待检测的站,你觉得应该先做什么?

  • 首先明确目标:测试目标的ip(nslookup,ping),域名,
  • 规则:渗透到什么程度,能否提权
  • 信息收集

a、获取域名的whois信息,获取注册者邮箱姓名电话等,丢社工库里看看有没有泄露密码,然后尝试用泄露的密码进行登录后台。用邮箱做关键词进行丢进搜索引擎。利用搜索到的关联信息找出其他邮箱进而得到常用社交账号。社工找出社交账号,里面或许会找出管理员设置密码的习惯 。利用已有信息生成专用字典。

b、查询服务器旁站以及子域名站点,因为主站一般比较难,所以先看看旁站有没有通用性的cms或者其他漏洞。

c、查看服务器操作系统版本,web中间件,看看是否存在已知的漏洞,比如IIS,APACHE,NGINX的解析漏洞

d、查看IP,进行IP地址端口扫描,对响应的端口进行漏洞探测,比如 rsync,心zang出血,mysql,ftp,ssh弱口令等。

常见端口 。 21 ftp 文件传输 22ssh安全登录 3306 mysql 3389远程桌面 80http 443https 139,445smb文件共享

e、扫描网站目录结构,看看是否可以遍历目录,或者敏感文件泄漏,比如php探针 f、google hack 进一步探测网站的信息,后台,敏感文件

  • 漏洞扫描

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

  • 漏洞利用 利用以上的方式拿到webshell,或者其他权限
  • 权限提升 提权服务器,比如windows下mysql的udf提权,serv-u提权,windows低版本的漏洞,如iis6,pr,巴西烤肉,linux脏牛漏洞,linux内核版本漏洞提权,linux下的mysql system提权以及oracle低权限提权

  • 日志清理(日志,history,访问ip,上传文件,是否有留后门)
  • 总结报告及修复方案

2·xss

一、什么是 XSS

跨站脚本攻击,XSS属于客户端攻击,受害者最终是用户,

XSS攻击最终目的是在网面插入js代码,而且js能实现什么,xss就能获取什么。比如弹出窗口,盗取用户Cookie,废掉页面,导航到恶意网站!更高端的XSS代码完全可以进行监控你的键盘操作,模仿Windows注销界面,诱导你输入开机密码。

二、XSS漏洞出现的原因

程序对输入和输出的控制不够严格,导致脚本输入后,在前端时被浏览器当作有效代码解析执行从而产生危害.

三、XSS的危害

1、劫持用户cookie信息

2、“框架钓鱼”。操作网页中的DOM树结构和内容,在网页中通过JS脚本,生成虚假的页面,欺骗用户执行操作,而用户所有的输入内容都会被发送到攻击者的服务器上。

3、挂马(水坑攻击)ms14_064漏洞

4、有局限性的键盘记录

四、 XSS分类

反射型,储存型,dom型

五、XSS测试方法

1、工具扫描:APPscan、AWVS 2、手工测试:Burpsuite、firefox(hackbar)、XSSER XSSF

六。防御

前端参数过滤

3·sql注入

一。什么是sql注入

SQL注入是将恶意的SQL查询语句输入参数中的攻击,之后再将这些参数传递给后台的sql服务器加以解析和执行,再返回的过程

二。出现原因

  • ①转义字符处理不合适;
  • ②不安全的数据库配置;
  • ③不合理的查询集处理;
  • ④不当的错误处理;

⑤多个提交处理不当。

三。危害

  • 数据库信息泄漏:数据库中存放的用户的隐私信息的泄露。
  • 网页篡改:通过操作数据库对特定网页进行篡改。
  • 网站被挂马,传播恶意软件:修改数据库一些字段的值,嵌入网马链接,进行挂马攻击。
  • 数据库被恶意操作:数据库服务器被攻击,数据库的系统管理员帐户被窜改。
  • 服务器被远程控制,被安装后门。经由数据库服务器提供的操作系统支持,让黑客得以修改或控制操作系统。
  • 破坏硬盘数据,瘫痪全系统。

四。类型

  • 最基础的注入-union注入攻击
  • Boolean注入攻击-布尔盲注
  • 报错注入攻击
  • 时间注入攻击-时间盲注
  • 二次注入攻击
  • 宽字节注入攻击
  • base64注入攻击

五。测试方法

1、工具扫描:APPscan、AWVS ,X-ray 2、手工测试:bs ,sqlmap,

六。预防

  • 首先,尽量避免使用常见的数据库名和数据库结构。
  • 正则表达式
  • 字符串过滤
  • 普通用户权限不要太高

4·真实ip

1.ping,nslookup,子域名:通过查询子域名对应的ip地址,然后扩展查询ip所在的C段地址,在C段地址中可能发现主站的真实ip——站长之家。

2.以会员身份发邮件,订阅服务收到通知查ip(前提是目标站使用的邮件服务是自己服务站,而不是第三方)

3.域名解析历史

假设以前某个时间点没有使用CDN,通过查询目标域名的dns解析历史,可能得到其真实IP,提供该历史查询的网站如微步在线、dnsdb、netcraft、Viewdns、CDN查询IP, ip138查询:https://site.ip138.com/  等等。

追踪平台:SecurityTrails

5.多地ping

通过一些第三方网站的分布式多地ping域名功能,如果得到的ip唯一或者只有少数几个结果ip,则为真实ip。类似网站:站长工具、just ping等。

5.zmap扫描

3.使用国外主机解析域名

一些CDN可能只做了国内的线路,所以使用国外主机可以获取到真实IP,直接使用多地Ping即可:站长之家:http://ping.chinaz.com/

6·应急响应

1、工具列表

Pchunter 恶意代码检测工具

Process Explorer 恶意代码检测工具

Autoruns 显示Windows启动时自动运行的程序

D盾 WebShell查杀

Logparser 日志分析工具

Windows的自带命令集没有linux的强大,不能完全满足应急响应时的处置工作,所以一般来说我们都需要借助外部工具进行恶意后门分析

2、检查项目

  • 注册表启动项 查看注册表中的自启动项
  • 恶意进程 查看是否存在可疑进程和用户
  • 系统服务 查看是否存在可疑系统服务
  • 网络连接 查看是否存在可疑的网络连接
  • 计划任务 查看是否存在可疑计划任务条目

上述的排查项,全部可以使用PChunter和Autoruns完成。

7·代码注入漏洞

1.eval()

eval($_REQUEST['pass']);

2.preg_replace()——php5.3

$a = $_REQUEST['passs'];

preg_replace($a);

@preg_replace('//e',base64_decode($_REQUEST['pass']),'');

3.assert()——php5 php7都可以用

assert($_REQUEST["PASS"]);

$a=$_GET['1'];$b=$_POST['2'];

4.creat_function()

$newfunc = creat_function('',$_REQUEST['pass'].";");

echo "New anonymous function: $newfunc\n";

$newfunc();

5.call_user_func()

call_user_func(create_function(null,'assert($_REQUEST[pass]);'));

6.call_user_func_array()

代码混淆免杀

8·sql注入如何读写文件,二次注入,防御方式

  • 读:select load_file
  • 写:into outfile

union select 1,'',3 into outfile 'C:\\\www\html\shell.php'

9·csrf和xss区别

  • XSS是实现CSRF的诸多手段中的一种
  • XSS是跨站脚本攻击 是利用站内的信任用户,盗取cookie发给xss平台
  • CSRF是跨站请求伪造攻击,csrf是通过伪装成受信任用户请求受信任的网站,骗取用户自愿发起的确认。
  • CSRF需要登陆后操作,XSS不需要
  • CSRF是请求页面api来实现非法操作,XSS是向当前页面植入js脚本来修改页面内容。

xss修复方式:对字符实体进行转义、使用HTTP Only来禁止JavaScript读取Cookie值、输入时校验、浏览器与Web应用端采用相同的字符编码。

csrf修复方式:筛选出需要防范CSRF的页面然后嵌入Token、再次输入密码、检验Referer

10·文件上传的后段绕过,防御方式

前段更改js限制

大小写 双写 代理

点空格(liunx不用)

::¥date

mine类型更改type元素

文件头信息绕过---gif89a

伪图片上传 copy/b 图+p 马(需要可以解析php文件)

条件竞争(多线程对同一共享资源操作)

00截断

11·中间件漏洞——IIS、Apache、nginx、Lighttpd、Tomcat

  • iis 6.0 文件解析漏洞

1.asa,1.asp文件夹下的文件都当作asp文件解析

1.asp;1.png也会当作asp解析

  • apache:文件拥有多个扩展名,从右往左解析,直到文件可以解析为止
  • nginx:

test.jpg/test.php当php解析

12·xxe与ssrf

xxe:应用程序解析xml时候没有禁止外部实体的加载,导致可家在外部文件,造成文件读取,命令执行,内网端口扫描,dos攻击等危害

ssrf:服务器提供了从其他服务器获取数据的功能,但是没有对外网目标地址做过过滤限制

13·rce讲一下,php函数eval和system popen

eval代码执行

system popen命令执行ipconfig

14·缓冲区溢出

通过往程序的缓冲区写超出其长度的内容,造成缓冲区的溢出,从而破坏程序的堆栈,使程序转而执行其它指令,以达到攻击的目的。造成缓冲区溢出的原因是程序中没有仔细检查用户输入的参数。

15·数据库提权(mysql,mssql,access,oracle)

  • 1. 查看网站连接数据库配置文件————config.ini.php
  • 2. 查看数据库安装路径下的mysql文件,md5解密
  • 3. 暴力破解(需要mysql开启远程连接)
  • 4. udf提权(Mysql_UDF提权_GuetSec_新浪博客)

配合工具(暗月)上传

  • 5.mof漏洞提权——仅支持2003及以上,很少用

1.工具建号,提权,找个可写目录上传mof文件

2.执行sql上传文件

select load_file('C:\\wmpub\\moon.mof') into dumpfile 'c:/windows/system32/wbem/mof/moon.mof';

16·常见的php序列化与反序列化函数

serialize unserialize

json_encode json_decode

var_export eval

wddx_serialize_value 和 wddx deserialize

17·如何突破注入时字符被转义?

宽字符注入 hex编码绕过

18·某个防注入系统,在注入时会提示:

系统检测到你有非法注入的行为。

已记录您的ip xx.xx.xx.xx

时间:2016:01-23

提交页面:test.asp?id=15

提交内容:and 1=1

19·如何利用这个防注入系统拿shell?

在URL里面直接提交一句话,这样网站就把你的一句话也记录进数据库文件了 这个时候可以尝试寻找网站的配置文件 直接上菜刀链接。

20·说出至少三种业务逻辑漏洞

  • 身份认证安全

1)暴力破解

2)撞库

3)cookie伪造

  • 数据篡改

1)邮箱篡改

2)订单ID,用户ID,手机号,商品编号,支付金额商品数量篡改

  • 未授权访问

1)横向越权

2)纵向越权

  • 密码找回

用户凭证暴力破解 -- 当当网 : 进行验证码的爆破 只有4位的验证码比较好跑出来

用户凭证暴力破解 -- 微信:微信密码重置漏洞

  • 验证码突破

常见类型:验证码暴力破解、验证码重复使用、验证码绕过、验证码回显、验证码自动识别

  • 接口调用安全

21·宽字节注入产生原理以及根本原因

当php开启gpc或者使用addslashes函数时,单引号'被加上反斜杠\',其中\的URL编码为%5C,我们传入%df',等价于%df%5C',此时若程序的默认字符集是GBK,mysql用GBK编码时会认为%df%5C是一个宽字符縗,于是%df%5C'便等价于縗',产生注入。

22·代替空格的方法

%0a、%0b、%a0 等 /**/ 等注释符 <>

23·mysql的网站注入,5.0以上和5.0以下有什么区别

5.0以下没有information_schema这个系统表,无法列表名等,只能暴力跑表名。

5.0以下是多用户单操作,5.0以上是多用户多操做。

24·TCP/IP——TCP三次握手的过程以及对应的状态转换

第一次握手:建立连接时,客户端A发送SYN包(SYN=j)到服务器B,并进入SYN_SEND状态,等待服务器B确认。

第二次握手:服务器B收到SYN包,必须确认客户A的SYN(ACK=j+1),同时自己也发送一个SYN包(SYN=k),即SYN+ACK包,此时服务器B进入SYN_RECV状态。

第三次握手:客户端A收到服务器B的SYN+ACK包,向服务器B发送确认包ACK(ACK=k+1),此包发送完毕,完成三次握手。

25· TCP和UDP协议区别

1) TCP提供面向连接的传输,通信前要先建立连接(三次握手机制); UDP提供无连接的传输,通信前不需要建立连接。

2) TCP提供可靠的传输(有序,无差错,不丢失,不重复); UDP提供不可靠的传输。

3) TCP面向字节流的传输,因此它能将信息分割成组,并在接收端将其重组; UDP是面向数据报的传输,没有分组开销。

4) TCP提供拥塞控制和流量控制机制; UDP不提供拥塞控制和流量控制机制。

26·流量分析

27·防火墙

28·登录框

暴力破解

1. 指定用户名爆破密码

2. 指定密码爆破用户名

SQL注入

1. 万能密码

2.SQL注入

XSS+CSRF

任意用户注册---如果登陆框附近存在用户注册功能时,可以尝试

1. 失效的身份认证

2. 验证码可暴破

任意密码重置

CSRF重新绑定手机号、邮箱号,

重新绑定时,用户身份可控,如最后的请求包可以通过修改用户id来控制绑定的用户

2021总结web渗透测试岗位面试题(个人亲身经历的总结)_第1张图片

短信轰炸

1. 单个用户短信炸弹

2. 轮询用户

你可能感兴趣的:(渗透测试训练,html,安全,web安全)