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

网络安全:Web 安全 面试题.(SQL注入)

网络安全:Web 安全 面试题.(SQL注入)

网络安全面试是指在招聘过程中,面试官会针对应聘者的网络安全相关知识和技能进行评估和考察。这种面试通常包括以下几个方面:

(1)基础知识:包括网络基础知识、操作系统知识、密码学知识等。
(2)安全技术:如入侵检测、防火墙配置、密码管理、漏洞分析等技术的掌握程度。
(3)安全实践:评估应聘者在实际工作中解决网络安全问题的能力,如案例分析、渗透测试等。
(4)安全意识:了解应聘者对网络安全的重视程度和责任心,以及在安全事故发生时的应对能力。
(5)项目经验:询问应聘者参与过的网络安全相关项目,了解其在项目中的具体工作和贡献。
(6)沟通表达:考察应聘者的沟通能力和逻辑思维,以及解决问题的方法。

目录:

网络安全:Web 安全 面试题.(SQL注入)

(1)SQL 注入种类:

(2)盲注是什么,怎么盲注:

(3)宽字节注入产生原理以及根本原因:

(4)SOL注入能做什么:

(5)以下链接存在 SQL 注入漏洞,对于这个变形注入,你有什么思路:

(6)发现 demo.jsp?uid=110 注入点,你有哪几种思路获取 webshell,哪种是优选:

(7)sqlmap 怎么对一个注入点注入:

(8)Sqlmap 常用参数:

(9)SQL注入防护方法:

(10)为什么参数化查询可以防止 SQL注入:

(11)mysql 的网站注入 5.0 以上和 5.0 以下有什么区别:

SQL注入测试实战:

SQL注入工具测试实战:


(1)SQL 注入种类:

数据的传递方式可以分为:get 注入post 注入cookie 注入

根据 注入点 类型分类:数字型字符型

根据 执行效果 分类:有回显的注入盲注报错注入堆叠注入宽字节注入


(2)盲注是什么,怎么盲注:

盲注是在 SOL注入攻击过程中,服务器关闭了错误回显,我们单纯通过服务器返回内容的变化来判断是否存在 SOL注入和利用的方式

盲注的手段有两种:

(1)通过页面的返回内容是否正确(boolean-based),来验证是否存在注入;

(2)通过 SQL 语句处理时间的不同来判断是否存在注入(time-based),可以用benchmark,sleep 等造成延时效果的函数;


(3)宽字节注入产生原理以及根本原因:

产生原理:

多字节字符集的使用:多字节字符集中,如GBK,一个汉字可能由两个字节组成。这种编码方式允许将两个字节识别为一个字符.

转义函数的局限性:例如 PHP 中的 addslashes()函数,它在特殊字符前添加反斜线(\)以防止SQL注入。但当使用宽字节字符集时,转义函数可能无法正确处理所有字符,导致转义失效.

编码转换问题:在使用 PHP 连接MySQL数据库时,如果设置了特定的字符集(如GBK),在字符编码转换过程中,某些字节序列可能被错误地解释为单个字符,从而绕过了转义机制.

根本原因:

字符集不统一:应用程序和数据库系统之间使用不同的字符集,可能导致字符编码和解码过程中出现不一致,为宽字节注入提供了机会.

转义机制的缺陷:转义函数可能没有考虑到所有可能的字符编码情况,特别是在处理多字节字符集时,导致转义不彻底或错误.

安全措施不足:如果应用程序仅依赖于转义函数来防止SQL注入,而没有采取更全面的安全措施,如使用预处理语句或参数化查询,就可能存在安全漏洞.


(4)何突破注入时字符被转义:

宽字符注入、hex 编码绕过


(5)SOL注入能做什么:

(1)绕过登录验证,比如说使用万能密码登录网站

(2)获取网站管理员账号密码

(3)读取文件写入 webshell 等;


(6)以下链接存在 SQL 注入漏洞,对于这个变形注入,你有什么思路:

demo.do?DATA=AjAxNg==

DATA 有可能经过了 base64 编码再传入服务器,所以我们也要对参数进行 base64 编码才能正确完成测试.


(7)发现 demo.jsp?uid=110 注入点,你有哪几种思路获取 webshell,哪种是优选:

有写入权限的,构造联合查询语句使用 using INTO OUTFILE,可以将查询的输出重定向到系统的文件中,这样去写入 WebShell 使用 sqlmap -os-shell 原理和上面一种相同,来直接获得一个 Shell,这样效率更高。

通过构造联合查询语句得到网站管理员的账户和密码,然后扫后台登录后台,再在后台通过改包上传等方法上传 Shell.


(8)延时注入如何来判断:

if(ascii(substr(“hello", 1, 1))=104, sleep(5), 1)


(9)sqlmap 怎么对一个注入点注入:

(1)如果是 get 型号,直接,sqImap -u "注入点网址"

(2)如果是 post 型注入点,可以 sqmap -u "注入点网址" --data="post 的参数"

(3)如果是 cookie,X-Forwarded-For 等,可以访问的时候,用 burpsuite 抓句,注入处用号替换,放到文件里,然后 sqlmap -r "文件地址"


(10)Sqlmap 常用参数:

-u        (指定 url)

-r        (读取需要注入的 post 请求的文本)

-m        (批量跑 get 注入)

-p        (指定注入参数)

-current-db:        (获取当前数据库)

--table        (枚举数据库表)

--tamper        (使用过 waf 脚本)


(11)SQL注入防护方法:

(1)使用安全的 API

(2)对输入的特殊字符进行 Escape 转义处理.

(3)使用白名单来规范化输入验证方法.

(4)对客户端输入进行控制不允许输入SQL注入相关的特殊字符.

(5)服务器端在提交数据库进行SQL查询之前,对特殊字符进行过滤、转义、替换、删除

(6)规范编码,字符集.


(12)为什么参数化查询可以防止 SQL注入:

原理:

使用参数化查询数据库服务器 不会把参数的内容当作 SQL指令 来执行,是在数据库完成 SQL 指令的编译后才套用参数运行。

简单的说:

参数化能防注入的原因在于,语句是语句参数是参数参数的值并不是语句的一部分,数据库只按语句的语义跑。


(13)mysql 的网站注入 5.0 以上和 5.0 以下有什么区别:

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

5.0 以下是多用户单操作5.0 以上是多用户多操作


SQL注入测试实战:Web安全:SQL注入漏洞测试(防止 黑客用此漏洞.)

SQL注入工具测试实战: Web安全 SQL注入漏洞 工具测试.

  

  

  

http://www.lryc.cn/news/379370.html

相关文章:

  • XSS学习(绕过)
  • 深信服2024笔试
  • IOS Swift 从入门到精通:闭包 第一部分
  • 解两道四年级奥数题(等差数列)玩玩
  • 深入理解Python中的并发与异步的结合使用
  • 如何将 ChatGPT 集成到你的应用中
  • 在 Swift 中,UILabel添加点击事件的方法
  • indexedDB---掌握浏览器内建数据库的基本用法
  • 【css】如何修改input选中历史选项后,自动填充的蓝色背景色
  • 红队内网攻防渗透:内网渗透之内网对抗:网络通讯篇防火墙组策略入站和出站规则单层双层C2正反向上线解决方案
  • linux 查看进程启动方式
  • 基于Java实训中心管理系统设计和实现(源码+LW+调试文档+讲解等)
  • 第2章 Android应用的界面编程
  • springboot学习-图灵课堂-最详细学习
  • Total CAD Converter与Total Excel Converter软件分享
  • 【2024最新华为OD-C/D卷试题汇总】[支持在线评测] 启动多任务排序(200分) - 三语言AC题解(Python/Java/Cpp)
  • 【会议征稿,JPCS出版】第三届电力系统与能源技术国际学术会议(ICPSET 2024,7月5-7)
  • 【机器学习300问】118、循环神经网络(RNN)的基本结构是怎样的?
  • loveqq-framework 和 thymeleaf 整合遇到的 th:field 的坑,原来只有 spring 下才有效
  • hugging face:大模型时代的github介绍
  • 如何快速绘制logistic回归预测模型的ROC曲线?
  • 实现具有多个实现类的接口并为每个实现类定义一个名字的方法
  • Linux解压缩命令
  • 如何在 Ubuntu 14.04 上使用 Iptables 实现基本防火墙模板
  • jasypt对yml文件进行加密解密
  • vue3-openlayers 使用tianditu,wmts和xyz等source加载天地图切片服务
  • npm、yarn、pnpm 最新国内镜像源设置和常见问题解决
  • Qt Object:智能即时聊天室项目
  • php,python aes加密反解
  • 基于Java学生选课管理系统设计和实现(源码+LW+调试文档+讲解等)