网络安全:Web 安全 面试题.(SQL注入)
网络安全面试是指在招聘过程中,面试官会针对应聘者的网络安全相关知识和技能进行评估和考察。这种面试通常包括以下几个方面:
(1)基础知识:包括网络基础知识、操作系统知识、密码学知识等。
(2)安全技术:如入侵检测、防火墙配置、密码管理、漏洞分析等技术的掌握程度。
(3)安全实践:评估应聘者在实际工作中解决网络安全问题的能力,如案例分析、渗透测试等。
(4)安全意识:了解应聘者对网络安全的重视程度和责任心,以及在安全事故发生时的应对能力。
(5)项目经验:询问应聘者参与过的网络安全相关项目,了解其在项目中的具体工作和贡献。
(6)沟通表达:考察应聘者的沟通能力和逻辑思维,以及解决问题的方法。
目录:
网络安全:网络安全面试问题(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)通过检查页面返回内容是否正确(基于布尔值)来验证是否存在注入。
(2)通过SQL语句处理时间的差异来判断是否存在注入(基于时间)。基准测试和睡眠等功能可用于引发延迟效应。
(3)宽字节注入产生原理以及根本原因:
生产原理:
使用多字节字符集:在GBK等多字节字符集中,汉字可能由两个字节组成。这种编码允许将两个字节识别为一个字符。
转义函数限制:例如,PHP的addslashes()函数在特殊字符前添加反斜杠(\\)以防止SQL注入。但是,当使用宽字节字符集时,转义函数可能无法正确处理所有字符,转义可能会失败。
编码转换问题:使用PHP 连接MySQL 数据库时,如果配置了某种字符集(例如GBK),则在字符编码转换过程中,某些字节序列可能会被解释为单个字符,从而导致转换被绕过。一个系统意味着一个过程。
根本原因:
字符集不一致:在应用程序和数据库系统之间使用不同的字符集可能会导致字符编码和解码过程不一致,从而为宽字节注入创造机会。
有缺陷的转义机制:转义函数可能不会考虑所有可能的字符编码情况,尤其是在处理多字节字符集时,导致转义不完整或不准确。
安全措施不足:如果应用程序仅仅依靠转义函数来防止SQL注入,而没有采取更全面的安全措施,例如使用准备好的语句或参数化查询,则可能存在安全漏洞。
(4)何突破注入时字符被转义:
宽字符注入,绕过十六进制编码
(5)SOL注入能做什么:
(1)绕过登录认证,例如使用通用密码登录网站。
(2) 获取网站管理员帐号和密码。
(3)读取文件、写入WebShell等。
(6)以下链接存在 SQL 注入漏洞,对于这个变形注入,你有什么思路:
Demo.do?DATA=AjAxNg==
DATA 在传递到服务器之前可能会进行Base64 编码,因此参数也必须进行Base64 编码才能成功完成测试。
(7)发现 demo.jsp?uid=110 注入点,你有哪几种思路获取 webshell,哪种是优选:
如果您具有写入权限,则可以使用INTO OUTFILE 创建联接查询语句并将查询输出重定向以写入WebShell。原理与上面相同。直接获取shell效率更高。
创建协同查询语句,检索网站管理员账号和密码,扫描后台,登录后台,通过修改上传包的方式在后台上传shell。
(8)延时注入如何来判断:
if(ascii(substr(“你好”, 1, 1))=104, 睡眠(5), 1)
(9)sqlmap 怎么对一个注入点注入:
(1) 对于直接获取模型sqImap -u \’注入点URL\’
(2)对于post类型的注入点,可以运行sqmap -u \’注入点URL\’ –data=\’postparameters\’。
(3)对于cookie、X-Forwarded-For等,如果能访问的话,使用burpsuite捕获语句,将注入点替换为数字,放入文件中,运行sqlmap -r \”文件地址”
(10)Sqlmap 常用参数:
-u(指定URL)
-r(读取需要插入的post请求文本)
-m(批量运行获取注入)
-p(指定注入参数)
-current-db:(获取当前数据库)
–table(枚举数据库表)
–tamper(使用waf 脚本)
(11)SQL注入防护方法:
(1) 使用安全的API
(2) 对输入的特殊字符进行转义。
(3) 使用白名单标准化输入验证方法。
(4)控制客户端输入,禁止输入与SQL注入相关的特殊字符。
(5) 服务器端对特殊字符进行过滤、转义、替换、删除,然后再发送到数据库进行SQL查询。
(6) 标准编码和字符集。
(12)为什么参数化查询可以防止 SQL注入:
原则:
当使用参数化查询数据库服务器时,参数的内容不会作为SQL指令执行。参数在数据库完成SQL 指令编译后应用。
简而言之:
参数化可以防止注入,因为语句是语句,参数是参数。数据库仅根据语句的语义执行。
(13)mysql 的网站注入 5.0 以上和 5.0 以下有什么区别:
5.0之前没有information_schema系统表,所以不能列出names等,只能强行停止表name。
5.0以下是多用户单操作,5.0以上是多用户多操作。
SQL注入测试实战:Web安全:SQL注入漏洞测试(防止 黑客用此漏洞.)
SQL注入工具测试实战:Web安全 SQL注入漏洞 工具测试.
#网络安全之上:Web安全面试题(SQL注入)相关内容来源网络,仅供参考。相关信息请参见官方公告。
原创文章,作者:CSDN,如若转载,请注明出处:https://www.sudun.com/ask/91207.html