安全面试之WEB安全(二)

前言

作者简介:不知名白帽,网络安全学习者。

博客主页:https://blog.csdn.net/m0_63127854?type=blog

安全面试专栏:https://blog.csdn.net/m0_63127854/category_11869916.html

网络安全交流社区:https://bbs.csdn.net/forums/angluoanquan


目录

11.如何突破注入时字符被转义

12.目标站禁止注册用户,找回密码处随便输入用户名提示:“此用户不存在”,你觉得这里怎样利用

13.CSRF、SSRF和重放攻击有什么区别

14.SQL注入防护方法

15.代码执行,文件读取,命令执行的函数都有哪些

1)代码执行:

2)文件读取:

3)命令执行:

16.为什么参数化查询可以防止SQL注入

17.盲注是什么,怎么盲注

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

1)产生原理:

2)根本原因:

3)解决办法:

19.mysql的网站注入5.0以上和5.0以下有什么区别

20.SSRF漏洞的验证方法


11.如何突破注入时字符被转义

宽字符注入、hex编码绕过

12.目标站禁止注册用户,找回密码处随便输入用户名提示:“此用户不存在”,你觉得这里怎样利用

1)先爆破用户名,再利用被爆破出来的用户名爆破密码
2)其实有些站点,在登陆处也会这样提示
3)所有和数据库有交互的地方都有可能有注入

13.CSRF、SSRF和重放攻击有什么区别

CSRF是跨站请求伪造攻击,由客户端发起;
SSRF是服务器端请求伪造,由服务器发起;
重放攻击是将截获的数据包进行重放,达到身份认证等目的。

14.SQL注入防护方法

1)使用安全的API
2)对输入的特殊字符进行Escape转义处理
3)使用白名单来规范化输入验证方法
4)对客户端输入进行控制,不允许输入SQL注入相关的特殊字符
5)服务器端在提交数据库进行SQL查询之前,对特殊字符进行过滤、转义、替换、删除

15.代码执行,文件读取,命令执行的函数都有哪些

1)代码执行:

eval, preg_replace+/e, assert, call_user_func, call_user_func_array, create_function

2)文件读取:

file_get_contents( ), highlight_file( ), fopen( ), readfile( ), fread( ), fgetss( ),
fgets( ), parse_ini_file( ), show_source( ), file( )

3)命令执行:

system( ), exec( ), shell_exec( ), passthru( ), pcntl_exec( ), popen( ), proc_open( )

16.为什么参数化查询可以防止SQL注入

原理:使用参数化查询数据库服务器不会把参数的内容当作sql指令的一部分来执行,是在数据库完成sql指令的编译后才套用参数运行。
简单的说:参数化能防注入的原因在于,语句是语句,参数是参数,参数的值并不是语句的一部分,数据库只按语句的语义跑。

17.盲注是什么,怎么盲注

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

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

1)产生原理:

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

2)根本原因:

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

3)解决办法:

统一数据库、Web应用、操作系统所使用的字符集,避免解析产生差异,最好都设置为UTF-8。或对数据进行正确的转义,如mysql_real_escape_string+ mysql_set_charset 的使用。

19.mysql的网站注入5.0以上和5.0以下有什么区别

5.0以下没有 information_schema 这个系统表,无法列表名等,只能暴力跑表名;
5.0以下是多用户单操作,5.0以上是多用户多操作。

20.SSRF漏洞的验证方法

因为SSRF漏洞是让服务器发送请求的安全漏洞,所以就可以通过抓包分析发送的请求是否是由服务器所发送的,从而来判断是否存在SSRF漏洞;
在页面源码中查找访问的资源地址,如果该资源地址类型为
www.baidu.com/xxx.php?image=( 地址)的就可能存在SSRF漏洞。

猜你喜欢

转载自blog.csdn.net/m0_63127854/article/details/127497386