首页 > 编程知识 正文

web漏洞一般验证方法(web漏洞特征)

时间:2023-05-05 15:01:00 阅读:78644 作者:764

来源:知了精神饱满的星老师

0宣言

1 .本课程涉及的所有信息安全攻击技术等内容均用于教学和学习,不得用于其他用途。 否则后果自负。

2 .本课程涉及的所有软件工具均来自互联网,可基于互联网共享精神提供给学员,但仅限于教与学用途,不得用于其他用途。

1中华人民共和国网络安全法(2017年6月1日施行)。

第12条

任何个人和组织使用互联网,都必须遵守宪法法律,遵守公共秩序,尊重公序良俗,不得利用互联网危害国家安全、荣誉和利益。 不得利用互联网煽动颠覆国家政权、颠覆社会主义制度,煽动国家分裂,破坏国家统一,宣传恐怖主义,宣传民族仇恨、民族歧视,发布暴力淫秽信息,编造虚假信息,扰乱和侵害经济秩序和社会秩序

第44条

任何个人和组织不得窃取或者以其他非法方式获取个人信息,不得非法销售或者非法向他人提供个人信息。

2中华人民共和国刑法(摘录)

第285条

【非法侵入计算机信息系统罪】违反国家规定,侵入国家事务、国防建设、尖端科技领域计算机信息系统的,处三年以下有期徒刑或者拘役。

第286条

【破坏计算机信息系统罪】违反国家规定,删除、修改、增加、阻碍计算机信息系统功能,致使计算机信息系统不能正常运行,后果严重的,处五年以下有期徒刑或者拘役。 后果特别严重,将被判处5年以上有期徒刑。

3本课程涵盖的主要群体:

本课程主要面向以网络安全相关工作场所为目标、以安全行业为目标、对web安全和渗透测试感兴趣的嵌入式用户。 本课程初步设计的主要对象是零度基点凹坑学生,技术有限,请多多指正。

0上传漏洞介绍

在现代互联网的web APP应用中,上传文件是一种常见的功能。 这是为了提高企业办公自动化系统等的业务效率,让用户上传图像、视频、头像和许多其他类型的文件。 但是,提供给用户的功能越多,web APP应用程序受到攻击的风险就越高。 如果web APP应用程序中存在文件上传漏洞,恶意用户可以利用文件上传漏洞将可执行的脚本程序上传到服务器,以获取网站权限或危害服务器。

为什么文件上传存在漏洞

上传文件时,如果服务器代码没有严格验证和过滤从客户端上传的文件,则会上传脚本文件(asp、aspx、php、jsp等格式的文件)

危害

未经授权的用户可以使用上传的恶意脚本文件来控制整个网站和控制服务器。 此恶意脚本文件也称为webshell,webshell脚本也称为web后门。 webshell脚本具有查看服务器目录、查看服务器中的文件和执行系统命令等强大功能。

1案例分析

2 JS检测绕过攻击

JS检测旁路上传漏洞在用户选择和上传文件时很常见。 如果不允许上传文件的后缀,请弹出框通知您。 此时,上载文件的数据包不会发送到服务器端,而只是位于客户端。 查看器使用JavaScript检测包。

在这种情况下,有两种方法可以绕过客户端的JavaScript检测

使用浏览器插件删除检测文件后缀的JS代码,然后上传文件即可绕过。

将需要上传的文件后缀更改为JPG、PNG等上传许可,绕过JS检测,抓住包,将扩展名更改为可执行文件后缀,即可上传成功。

(注意:除了删除代码的旁路方法外,还有很多方法,如禁用ie脚本功能、删除火狐的noscript插件和代码中的JS引用。)

3 JS检查绕过攻击分析

14ff9b7d6ecc710d77d25?from=pc">

客户端上传文件的HTML代码如下,在选择文件时,会调用JS的selectFile函数,函数的作用是先将文件名转换为小写,然后通过substr获取文件名最后一个点号后面的后缀(包括点号)。如果后缀不是”jpg”,则会弹窗提示“请选择jpg格式的照片上传”。

服务器处理上传文件的代码如下所示。如果上传文件没有错,再通过file_exists判断在upload目录下文件是否已存在,不存在的话就通过move_uploaded_file将文件保存到upload目录。此PHP代码中没有对文件后缀做任何判断,所以只需要绕过前端JS校验就可以上传webshell

4 文件后缀绕过攻击

文件后缀绕过攻击是服务器代码中限制了某些后缀的文件不允许上传,但是有些apache是允许其他文件后缀的,例如在http.conf中,如果配置有如下代码,则能够解析php和phtml文件AddType application/x-httpd-php .php .phtml。

所以可以上传一个后缀为phtml的webshell如 abc.php.phtml。

在apache的解析顺序中,是从右到左开始解析文件后缀的,如果最右侧的扩展名不识别,就继续往左判断,直到遇到可以解析的文件为止,所以如果上传的文件名类似abc.php.xxx,因为后缀xxx不可以解析,所以向左解析后缀php。

服务端处理上传文件的代码如下所示。通过函数pathinfo()获取文件后缀,将后缀,将后缀转换为小写之后,判断是不是“php”,如果上传文件的后缀是php,则不允许上传,所以此处可以通过利用apache解析顺序或上传phtml等后缀的文件绕过该代码限制。

5 文件类型绕过攻击

在客户端上传文件时,通过burp suite抓取数据包,当上传一个php格式的文件时,可以看到数据包中的Content-Type的值是application/octet-stream,而上传jpg格式的文件时,数据包中的content-Type的值是image/jpeg。

如果服务器端代码是通过content-type的值来判断文件的类型,那么就存在被绕过的可能,因为content-type的值是通过客户端传递的,是可以任意修改的。所以当上传一个php文件时,在burpsuite中将content-type修改为image/jpeg,就可以绕过服务端的检测。

今天就先更新到这儿了,未完待续!!!请持续关注~~

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。