1.CSRF 和 XSS 和 XXE 有什么区别,以及修复方式?
XSS是跨站脚本攻击,用户提交的数据中可以构造代码来执行,从而实现窃取用户信息等攻击。修复方式:对字符实体进行转义、使用HTTP Only来禁止JavaScript读取Cookie值、输入时校验、浏览器与Web应用端采用相同的字符编码。
CSRF是跨站请求伪造攻击,XSS是实现CSRF的诸多手段中的一种,是由于没有在关键操作执行时进行是否由用户自愿发起的确认。修复方式:筛选出需要防范CSRF的页面然后嵌入Token、再次输入密码、检验Referer
XXE是XML外部实体注入攻击,XML中可以通过调用实体来请求本地或者远程内容,和远程文件保护类似,会引发相关安全问题,例如敏感文件读取。修复方式:XML解析库在调用时严格禁止对外部实体的解析。
2.写出病毒木马常用的hook技术以及大致实现。
1.INLINE HOOK将需要hook的api函数入口的部分代码修改为跳转代码,如将函数的序言代码push ebp;mov ebp,esp等代码修改为jmp hook_func的指令
2.IAT HOOK遍历可执行程序的导入表,并修改导入表的地址为要跳转的函数地址
3.消息hook机制 利用setwindowshook函数配合全局参数劫持windows下的消息传递,利用callnexthookex将消息进行下一步的分发。通常该技术用来进行dll注入。
4.SSDT hook在内核层上通过KeServiceDescriptorTable内核导出变量来获取对应的ssdt表地址,接着查询需要hook的内核api的索引,将ssdt表对应索引的函数地址改为需要跳转的函数地址。