php常见web安全问题,web安全面试常见问题(来自微博)

问题出处

65e1e6f8648e

image.png

部分个人回答

解释一下同源策略?

如果两个页面的协议,端口和域名相同,则可认为是同源。

哪些东西是可以从同源获取的?

读取cookie, LocalStorage 和 IndexDB

读取DOM元素

发送AJAX请求

如果子域名和顶级域名不同源,哪里可以设置成同源?

大概就是子域相同,主域不同的意思吧,可以通过在两房都设置document.domain来解决跨域。

如何设置可以解决跨域请求?jsonp是做什么的?

主域相同时跨域,可以像上面那样设置document.domain.

主域不同时,可以通过jsonp,websocket,在服务端设置CORS进行跨域请求。H5新增window.postMessage方法解决跨域请求。

通过

ajax是否受遵循同源策略?

ajax全名是Asynchronous JavaScript and XML ,异步的javascript和XML技术。遵循同源策略,但是可以通过jsonp等进行规避。

json注入如何利用?

xss

浏览器策略

同源策略,内容安全策略(CSP), Cookie安全策略(httponly, Secure, Path)

如何判断sqli注入,有哪些方法?

添加单引号,双引号,order by, sleep,benchmark,运算符,修改数据类型,报错注入语句测试

为什么有的时候没有错误回显,用php举例

php的配置文件php.ini进行了修改,display_errors = On 修改为 display_errors = off时候就没有报错提示。

在php脚本开头添加error_reporting(0); 也可以达到关闭报错的作用。

宽字符注入的原理?如何利用宽字符注入漏洞,payload如何构造?

通俗讲,gbk,big5等编码占了两个字节,sql语句进后端后对单引号等进行了转义,转义\为%5C,当前面的%xx与%5C能结合成两个字节的字符时候,就可以使后面的单引号逃逸,从而造成注入。比较常见的gbk,%df' =>

%df%5c%27 => 運' 。已经可以单引号了,剩下的就和普通注入差不多了。

你都了解哪些sql的bypass技巧?

这种太多了,网上一搜一大把。主要还是看目标站点的过滤和防护,常见bypass可以是/**/替换空格,/*!00000union*/ 等于union,或者利用前端过滤,添加尖括号<>。大小写什么的都太常见了,如果过滤了函数或者关键字,可以尝试其他能达到效果的同等函数,关键字比如or 1=1可以用||1替换,或者用运算符比如/,%达到相同的效果。总之,还是看要求。

CRLF注入的原理?

CRLF是回车+换行的简称。碰得比较少,基本没挖到过这种洞,简而言之一般是可以通过提交恶意数据里面包含回车,换行来达到控制服务器响应头的效果。碰到过潜在的CRLF都是提交回车和换行之后就500了。CRLF的利用可以是XSS,恶意重定向location,还有set-cookie.

XSS发生的场景?

个人理解是对用户提交数据为进行安全的过滤然后直接输入到页面当中,造成js代码的执行。至于具体场景,有输出的地方就有可能被xss的风险。

xss蠕虫?

不太了解。

如果给你一个XSS盲打漏洞,但是返回来的信息显示,他的后台在内网,并且只能内网访问,如何利用这个xss?

github有一些现成的xss扫描内网端口的脚本,可以参考利用,再根据探测出来的信息进一步利用,比如开了redis等,再就是利用漏洞去getshell.

php.ini可以设置哪些安全特性?

关闭报错,设置open_basedir,禁用危险函数,打开gpc。有具体的文章介绍安全配置这一块,属于运维的工作范围。

php里面有哪些可以不让错误的显示的方法?

除了上面的,还可以在执行语句前面添加@

php的%00截断的原理?

存在于5.3.4版本下,一般利用在文件上传时文件名的截断,或者在对文件进行操作时候都有可能存在00阶段的情况。 如filename=test.php%00.txt 会被截断成test.php,00后面的被忽略。系统在对文件名读取时候,如果遇到0x00,就会认为读取已经结束了。

webshell的检测,有哪些方法?

个人知道的大体上分为静态检测和动态检测两种。静态检测比如查找危险函数,如eval,system等。动态检测是检测脚本运行时要执行的动作,比如文件操作,socket操作等。具体方法可以是通过D盾或者其他查杀软件进行查杀,现在也有基于机器学习的webshell识别。

CSRF漏洞的本质是什么?

CSRF即跨站请求伪造,以受害者的身份向服务器发送一个请求。本质上个人觉得是服务端在执行一些敏感操作时候对提交操作的用户的身份校检不到位。

防御CSRF都有哪些方法,JAVA是如何防御CSRF漏洞的,token一定有用吗?

防御CSRF一般是加上referer和csrf_token.

jAVA不太懂。具体可以参考这篇CSRF攻击的CSRF攻击的应对之道

HTML5有哪些新的安全特性?

H5新增了不少标签,在绕过xss防御方面多了不少选择。还有就是新增了本地存储,localstorage 和session storage,可以通过xss修改本地存储达到类似一个存储xss的效果。

H5白名单要哪些标签?

你都了解哪些java框架。

struts2 ,spring

java的MVC结构都是做什么的,数据流向数据库的顺序是什么?

了解java沙箱吗?

ibats的参数化查询能不能有效的控制sql注入?有没有危险的方法可以造成注入?

说说两次struts漏洞的原理

ongl在这个pyalod中的起什么作用?

\u0023是什么字符的16进制编码?为什么要在payload里使用它

java会不会发生命令执行的漏洞?java都有哪些语句方法可以执行系统命令?

........

一堆不会....

mysql数据库默认有哪些库?说出库的名字

infomation_schema, msyql, performance_scheme, test

mysql的用户名密码是放在哪张表里面?mysql密码采用哪种方式?

mysql数据库下的user表。

哪天加班肝不动的时候就来看看能不能把剩下的问题补了,欢迎改正和补充。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值