千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  应聘面试  >  网络安全面试题  > 【SQL篇】大厂网络安全面试题集合(一)

【SQL篇】大厂网络安全面试题集合(一)

来源:千锋教育
发布人:syq
时间: 2022-07-14 13:44:00 1657777440

  SQL 注入防护

  1、使用安全的 API

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

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

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

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

  6、规范编码,字符集

网络安全面试题

  为什么参数化查询可以防止 sql 注入?

  原理:

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

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

  SQL 头注入点

  UAREFERERCOOKIEIP

  盲注是什么?怎么盲注?

  盲注是在 SQL 注入攻击过程中,服务器关闭了错误回显,我们单纯通过服务器返回内容的变化来判断是否存在 SQL 注入和利用的方式。盲注的手段有两种,一个是通过页面的返回内容是否正确(boolean-based),来验证是否存在注入。一个是通过 sql 语句处理时间的不同来判断是否存在注入(time-based),在这里,可以用 benchmark,sleep 等造成延时效果的函数,也可以通过构造大笛卡儿积的联合查询表来达到延时的目的。

  宽字节注入产生原理以及根本原因

  产生原理

  在数据库使用了宽字符集而 WEB 中没考虑这个问题的情况下,在 WEB 层,由于 0XBF27 是两个字符,在 PHP 中比如 addslash 和 magic_quotes_gpc 开启时,由于会对 0x27 单引号进行转义,因此 0xbf27会变成 0xbf5c27,而数据进入数据库中时,由于 0XBF5C 是一个另外的字符,因此\转义符号会被前面的 bf 带着"吃掉",单引号由此逃逸出来可以用来闭合语句。

  在哪里编码

  根本原因

  character_set_client(客户端的字符集)和 character_set_connection(连接层的字符集)不同,或转换函数如,iconv、mb_convert_encoding 使用不当。

  解决办法

  统一数据库、Web 应用、操作系统所使用的字符集,避免解析产生差异,最好都设置为 UTF-8。或

  对数据进行正确的转义,如 mysql_real_escape_string+mysql_set_charset 的使用。sql 里面只有 update 怎么利用

  先理解这句

  SQL

  UPDATE

  user SET password='MD5($password)', homepage='$homepage' WHERE id='$id'

  如果此SQL被修改成以下形式,就实现了注入:

  a、修改 homepage 值为 http://xxx.net', userlevel='3之后 SQL 语句变为

  UPDATE user SET password='mypass', homepage='http://xxx.net', userlevel='3' WHERE id='$id'userlevel 为用户级别

  b、修改 password 值为 mypass)' WHEREusername='admin'#之后 SQL 语句变为UPDATE user SET password='MD5(mypass)'WHERE username='admin'#)', homepage='$homepage' WHERE id='$id'

  c、修改 id 值为' OR username='admin'之后 SQL 语句变为UPDATE user SET password='MD5($password)', homepage='$homepage' WHERE id='' OR username='admin'

  sql 如何写 shell/单引号被过滤怎么办?

  写 shell: root 权限,GPC 关闭,知道文件路径 outfile 函数

  http://127.0.0.1:81/sqli.php?id=1 into outfile 'C:\\wamp64\\www\\phpinfo.php' FIELDS

  TERMINATED BY ''`

  `http://127.0.0.1:81/sqli.php?id=-1 union select

  1,0x3c3f70687020706870696e666f28293b203f3e,3,4 into outfile 'C:\\wamp64\\www\\phpinfo.php'`

  宽字节注入

  代替空格的方法

  %0a、%0b、%a0 等/**/ 等注释符<>

  mysql 的网站注入,5.0 以上和 5.0 以下有什么区别?5.0 以下没有 information_schema 这个系统表,无法列表名等,只能暴力跑表名。

  5.0 以下是多用户单操作,5.0 以上是多用户多操做。

  更多关于网络安全培训的问题,欢迎咨询千锋教育在线名师,如果想要了解我们的师资、课程、项目实操的话可以点击咨询课程顾问,获取试听资格来试听我们的课程,在线零距离接触千锋教育大咖名师,让你轻松从入门到精通。

tags:
声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT