2023级网络安全岗面试题及面试经验分享(10)
2023-04-24 来源:飞速影视
来源:牛客网
你先做个自我介绍吧
假如说有个SQL注入如下
select * from user where userid = {};
这种情况下如何注入?
response里面没有返回内容
1s就超时了,直接返回404页面
比如说我写一个安全SDK
sql注入的修复, 怎么写(伪代码)
答:我倾向于使用预编译的方式
但是预编译的话, 研发可能不会用怎么办呢, 就是说如果他觉得改起来太麻烦了能不能更方便一点. 因为预编译的话, 我每条SQL每条查询都得去改.
答:那设计一个白名单怎么样呢
那你大概写一下怎样设计一个白名单. 你可以分场景, 比如说什么场景什么场景的SQL注入, 或者是参数里面应该做什么操作
xss的修复, 怎么写(伪代码) 答: 用实体化转义
但是我们有一个场景啊, 你看我们上传简历这里, 有时候会支持上传html的简历, 对吧. 他本身业务就需要用到html, 如果用html实体化转义的话, 他全都会被转义, 那这样的话业务就崩了嘛, 对不对. 那这种情况下我们要怎么样去写一个xss的过滤, 或者是说转义, 去解决这个类似于简历这个场景. 你可以想一想, 写不出来代码也没关系.
答:白名单限制, 黑名单过滤.
其实我们自己是这样做的, 对于这种情况, 我们第一是会做一个html标签的白名单, 第二是事件的白名单. 黑名单我们就不搞了.
rce的修复, 怎么写(伪代码)(java或者python的命令执行) 答: 白名单限制, 只允许需要的函数. 但RCE的话我感觉在业务场景当中, 一般来说也不是很容易出现 面试官: 欸, 我们就出现了很多. 尤其是运维部门.
我: 我打CTF比较多, 我了解的RCE都是PHP方面的. 比如说system, popen之类的. 一般来说都是直接做过滤
那PHP中这些函数全部被黑名单了, 你还有什么方法
答: 字符串拼接 $a=p.h.p.i.n.f.o()
你有没有用过php里面的反引号啊
答: 还有用 chr() 函数来绕过
面试官: 编码是吧
xxe的修复, 怎么写(伪代码) 答: 对XXE来说, 我只了解他的攻击方式, 对他的防御不是很了解. 攻击方式就是做XML的外部实体化注入. 一个攻击模板, 可以读文件, 可以做命令执行