本文将为您提供关于访问外部文件到我们的Web应用程序的详细介绍,我们还将为您解释访问外部文件到我们的web应用程序中的相关知识,同时,我们还将为您提供关于2019测试指南-web应用程序安全测试(二)
本文将为您提供关于访问外部文件到我们的Web应用程序的详细介绍,我们还将为您解释访问外部文件到我们的web应用程序中的相关知识,同时,我们还将为您提供关于2019测试指南-web应用程序安全测试(二)指纹Web应用程序、android – 如何找到我们可以在我们的应用程序中使用其他应用程序时使用的“公共”意图、asp.net配置IIS后"服务器应用程序不可用"的解决办法 服务器应用程序不可用 您试图在此Web服务器上访问的Web应用程序当前不可用、docker – 如何从主机访问容器的Web应用程序的实用信息。
本文目录一览:- 访问外部文件到我们的Web应用程序(访问外部文件到我们的web应用程序中)
- 2019测试指南-web应用程序安全测试(二)指纹Web应用程序
- android – 如何找到我们可以在我们的应用程序中使用其他应用程序时使用的“公共”意图
- asp.net配置IIS后"服务器应用程序不可用"的解决办法 服务器应用程序不可用 您试图在此Web服务器上访问的Web应用程序当前不可用
- docker – 如何从主机访问容器的Web应用程序
访问外部文件到我们的Web应用程序(访问外部文件到我们的web应用程序中)
这个问题可能被问过很多次,但是我没有找到直接的答案。
实际上,我正在使用WebSphere来运行Java Web应用程序,我想将上传的文件/资源保存/存储到服务器目录之外的文件夹中,D:/resources/但是我担心的是,我们是否有可能这样做?因为这可能是某种安全漏洞。
如果可能的话,那么如何在Java Web应用程序中做到这一点。
答案1
小编典典下面是在struts 1.x中上传文件的代码
public class MyModel extends ActionForm { private static final long serialVersionUID = 1L; private FormFile file = null; public void setFile(FormFile file) { this.file = file; } public FormFile getFile() { return this.file; }}public class FileUploadAction extends DispatchAction{MyModel m = (MyModel) form;FormFile myFile = m.getFile();String contentType = myFile.getContentType();String fileName = myFile.getFileName();int fileSize = myFile.getFileSize();byte[] fileData = myFile.getFileData();String recieveMaterialFileName = myFile.getFileName();File newFile = new File("D:/resources/images", recieveMaterialFileName);if(!newFile.exists()){ FileOutputStream fos = null; try { fos = new FileOutputStream(newFile); fos.write(myFile.getFileData()); fos.flush(); } catch (FileNotFoundException e) { System.err.println("Error " + e); } catch (IOException e) { System.err.println("Error " + e); }finally{ fos.close(); } }}
2019测试指南-web应用程序安全测试(二)指纹Web应用程序
在阳光下没有任何新东西,几乎每一个人们都可能想到开发的Web应用程序已经开发出来了。随着世界各地积极开发和部署的大量免费和开源软件项目,应用程序安全测试很可能面临完全或部分依赖于这些众所周知的应用程序的目标站点(例如Wordpress, phpBB,Mediawiki等)。了解正在测试的Web应用程序组件对测试过程有很大帮助,并且还将大大减少测试期间所需的工作量。这些众所周知的Web应用程序具有已知的HTML标头,cookie和目录结构,可以枚举这些标识符以识别应用程序。
测试目标
确定Web应用程序和版本,以确定已知漏洞以及在测试期间使用的相应漏洞。
如何测试
饼干
识别Web应用程序的一种相对可靠的方法是使用特定于应用程序的cookie。
请考虑以下HTTP请求:
GET / HTTP / 1.1
用户代理:Mozilla / 5.0(Windows NT 6.2; WOW64; rv:31.0)Gecko / 20100101 Firefox / 31.0
接受:text / html,application / xhtml + xml,application / xml; q = 0.9,* /*;q=0.8
接受语言:en-US,en; q = 0.5
''''''Cookie:wp-settings-time-1 = 1406093286; wp-settings-time-2 = 1405988284''''''
DNT:1
连接:keep-alive
主持人:blog.owasp.org
已自动设置cookie CAKEPHP,它提供有关正在使用的框架的信息。常见cookie名称列表显示在Cpmmon应用程序标识符部分中。但是,可以更改cookie的名称。
HTML源代码
此技术基于在HTML页面源代码中查找某些模式。通常,人们可以找到许多信息,这些信息可以帮助测试人员识别特定的Web应用程序。其中一个常见标记是直接导致应用程序泄露的HTML注释。更常见的是,可以找到某些特定于应用程序的路径,即指向特定于应用程序的css和/或js文件夹的链接。最后,特定的脚本变量也可能指向某个应用程序。
从下面的元标记中,可以轻松了解网站及其版本使用的应用程序。注释,特定路径和脚本变量都可以帮助攻击者快速确定应用程序的实例。
<meta name =“generator”content =“WordPress 3.9.2”/>
更频繁地,此类信息放在<head> </ head>标记之间,<meta>标记中或页面末尾。然而,建议检查整个文档,因为它可用于其他目的,例如检查其他有用的注释和隐藏字段。
特定文件和文件夹
除了从HTML源收集的信息之外,还有另一种方法可以极大地帮助攻击者高精度地确定应用程序。每个应用程序在服务器上都有自己的特定文件和文件夹结构。有人指出,人们可以从HTML页面源看到特定的路径,但有时它们没有明确地显示在那里,仍然驻留在服务器上。
为了揭示它们,使用了称为dirbusting的技术。Dirbusting强制目标具有可预测的文件夹和文件名,并监视HTTP响应以计算服务器内容。此信息既可用于查找默认文件,也可用于攻击它们,也可用于对Web应用程序进行指纹识别。Dirbusting可以通过多种方式完成,下面的示例显示了借助于Burp Suite的已定义列表和入侵者功能,对WordPress驱动的目标进行了成功的dirbusting攻击。
我们可以看到,对于一些特定于WordPress的文件夹(例如,/ wp-includes /,/ wp-admin /和/ wp-content /),HTTP响应是403(禁止),302(找到,重定向到wp-login .php)和200(OK)。这是一个很好的指标,目标是WordPress驱动的。同样可以dirbust不同的应用程序插件文件夹及其版本。在下面的屏幕截图中,可以看到Drupal插件的典型CHANGELOG文件,该文件提供有关正在使用的应用程序的信息,并公开了易受攻击的插件版本。
提示:在开始dirbusting之前,建议先检查robots.txt文件。有时也可以在那里找到特定于应用程序的文件夹和其他敏感信息。下面的屏幕截图显示了此类robots.txt文件的示例。
每个特定应用程序的特定文件和文件夹都不同。建议在渗透测试期间安装相应的应用程序,以便更好地了解所呈现的基础结构以及服务器上可能留下的文件。但是,已经存在几个好的文件列表,一个很好的例子是可预测文件/文件夹的FuzzDB单词列表(http://code.google.com/p/fuzzdb/)。
通用应用程序标识符
饼干
亚历克 | phpbb3_ |
WordPress的 | WP-设置 |
1C-的Bitrix | BITRIX_ |
AMPcms | AMP |
Django CMS | Django的 |
DotNetNuke的 | DotNetNukeAnonymous |
E107 | e107_tz |
EPiServer | EPiTrace,EPiServer |
涂鸦CMS | graffitibot |
Hotaru CMS | hotaru_mobile |
ImpressCMS | ICMSession |
编号Indico | MAKACSESSION |
InstantCMS | InstantCMS [LOGDATE] |
Kentico CMS | CMSPreferredCulture |
镆铘 | SN4 [12symb] |
TYPO3 | fe_typo_user |
Dynamicweb | Dynamicweb |
轻子 | LEP [some_numeric_value] +的sessionid |
维克斯 | 域名= .wix.com |
VIVVO | VivvoSessionId |
HTML源代码
应用 | 关键词 |
---|---|
WordPress的 | <meta name =“generator”content =“WordPress 3.9.2”/> |
亚历克 | <body id =“phpbb” |
Mediawiki的 | <meta name =“generator”content =“MediaWiki 1.21.9”/> |
的Joomla | <meta name =“generator”content =“Joomla! - 开源内容管理”/> |
Drupal的 | <meta name =“Generator”content =“Drupal 7(http://drupal.org)”/> |
DotNetNuke的 | DNN平台 - http://www.dnnsoftware.com |
更多信息https://www.owasp.org/index.php/Web-metadata
工具
下面列出了一般和众所周知的工具。还有许多其他实用程序,以及基于框架的指纹识别工具。
WhatWeb
网站:http : //www.morningstarsecurity.com/research/whatweb
目前市场上最好的指纹识别工具之一。包含在默认的Kali Linux版本中。语言:用于指纹识别的Ruby匹配用于:
- 文本字符串(区分大小写)
- 常用表达
- Google Hack数据库查询(有限的关键字集)
- MD5哈希
- URL识别
- HTML标记模式
- 用于被动和激进操作的自定义ruby代码
示例输出显示在下面的屏幕截图中:
BlindElephant
网站:https ://community.qualys.com/community/blindelephant
这个伟大的工具基于静态文件校验和的版本差异原则,从而提供非常高质量的指纹识别。语言:Python
成功指纹的示例输出:
pentester $ python BlindElephant.py http:// my_target drupal
Loaded /Library/Python/2.7/site-packages/blindelephant/dbs/drupal.pkl包含145个版本,478个区分路径和434个版本组。
在http:// my_target
点击drupal版本启动BlindElephant指纹点击http://my_target/CHANGELOG.txt
文件产生不匹配。错误:检索到的文件与已知指纹不匹配。527b085a3717bd691d47713dff74acf4
点击http://my_target/INSTALL.txt
文件无法匹配。错误:检索到的文件与已知指纹不匹配。14dfc133e4101be6f0ef5c64566da4a4
点击http://my_target/misc/drupal.js
基于结果的可能版本
:7.12,7.13,7.14点击http://my_target/MAINTAINERS.txt
文件产生不匹配。错误:检索到的文件与已知指纹不匹配。36b740941a19912f3fdbfcca7caa08ca
点击http://my_target/themes/garland/style.css
基于结果的可能版本:7.2,7.3,7.4,7.5,7.6,7.7,7.8,7.9,7.10,7.11,7.12,7.13,7.14
...
指纹识别结果:
7.14
最佳猜测:7.14
Wappalyzer
网站:http:
//wappalyzer.com Wapplyzer是一款Firefox Chrome插件。它仅适用于正则表达式匹配,除了要在浏览器上加载的页面之外不需要任何其他内容。它完全在浏览器级别工作,并以图标的形式给出结果。虽然有时会出现误报,但在浏览页面后立即使用哪些技术构建目标网站的概念非常方便。
插件的示例输出显示在下面的屏幕截图中。
参考
白皮书
- Saumil Shah:“HTTP指纹识别简介” - http://www.net-square.com/httprint_paper.html
- Anant Shrivastava:“Web应用程序指纹” - http://anantshri.info/articles/web_app_finger_printing.html
整治
一般建议是使用上述几种工具并检查日志,以更好地了解攻击者确切地帮助披露Web框架的内容。通过在更改隐藏框架轨道后执行多次扫描,可以实现更高级别的安全性并确保自动扫描无法检测到框架。以下是框架标记位置和一些其他有趣方法的一些具体建议。
HTTP标头
检查配置并禁用或混淆所有披露技术使用信息的HTTP标头。这是一篇关于使用Netscaler进行HTTP-header混淆的有趣文章:http: //grahamhosking.blogspot.ru/2013/07/obfuscating-http-header-using-netscaler.html
饼干
建议通过更改相应的配置文件来更改cookie名称。
HTML源代码
手动检查HTML代码的内容并删除明确指向框架的所有内容。
一般准则:
- 确保没有透露框架的可视标记
- 删除任何不必要的评论(版权,错误信息,特定框架评论)
- 删除META和发电机标签
- 使用公司自己的css或js文件,不要将它们存储在特定于框架的文件夹中
- 如果必须使用默认脚本,请不要在页面上使用默认脚本或对其进行模糊处理。
特定文件和文件夹
一般准则:
- 删除服务器上任何不必要或未使用的文件。这意味着文本文件也公开了有关版本和安装的信息。
- 限制对其他文件的访问,以便在从外部访问时实现404响应。这可以通过修改htaccess文件并在那里添加RewriteCond或RewriteRule来完成。下面介绍两个常见WordPress文件夹的此类限制的示例。
RewriteCond%{REQUEST_URI} /wp-login\.php$ [OR]
RewriteCond%{REQUEST_URI} / wp-admin / $
RewriteRule $ / http:// your_website [R = 404,L]
但是,这些并不是限制访问的唯一方法。为了使该过程自动化,存在某些特定于框架的插件。WordPress的一个例子是StealthLogin(http://wordpress.org/plugins/stealth-login-page)。
其他方法
一般准则:
- 校验和管理这种方法的目的是击败基于校验和的扫描仪,而不是让它们通过哈希来公开文件。通常,校验和管理有两种方法:
- 更改这些文件的放置位置(即将它们移动到另一个文件夹,或重命名现有文件夹)
- 修改内容 - 即使稍微修改也会产生完全不同的哈希值,因此在文件末尾添加单个字节不应该是一个大问题。
- 控制混乱
一个有趣而有效的方法,涉及从其他框架添加虚假文件和文件夹,以欺骗扫描仪和混淆攻击者。但要小心不要覆盖现有的文件和文件夹,并打破当前的框架!
android – 如何找到我们可以在我们的应用程序中使用其他应用程序时使用的“公共”意图
它没有告诉我如何使用意图访问联系人列表,日历项目,电子邮件,短信,媒体播放器,相机,蓝牙或几乎每个Android手机上存在的任何其他应用程序.
它只是没有告诉我如何访问应用程序的东西,如ES文件资源管理器,DropBox,脸书,谷歌语音,或任何这些其他非常有用的应用程序,我们许多人免费下载,可能喜欢自动使用我们编写的应用程序.
如果那里的任何主体知道如何找到意图的“API”来从应用程序访问这些各种各样的东西,那么能够仔细阅读这些列表将会非常棒.
PS我意识到我可以有目的地启动任何这些应用程序,我知道如何做到这一点.但要自动上传一些内容到DropBox而不是打开DropBox的输入屏幕,以便我可以手动尝试猜测我的应用程序想要上传的内容然后手动上传,显然自动更好或者我们不会编程手机.
解决方法
编辑:你可以找到另一个意图列表 here.
asp.net配置IIS后"服务器应用程序不可用"的解决办法 服务器应用程序不可用 您试图在此Web服务器上访问的Web应用程序当前不可用
错误:服务器应用程序不可用 您试图在此Web服务器上访问的Web应用程序当前不可用。
请点击Web浏览器中的“刷新”按钮重试您的请求。管理员注意事项:详述此特定请求失败原因的错误消息可在Web服务器的系统事件日志中找到。请检查此日志项以明确该错误发生的原因。
方法一:重新注册.Net 2.0
原因大概是先安装了 .Net Framework后安装的IIS导致.Net没有在IIS注册,
从.net命令行工具里运行aspnet_regIIS /u 卸载,再aspnet_regIIS /i 安装,然后重启IIS,删除“默认应用程序”,然后将站点重新创建为应用程序。
方法二:新建应用连接池
新建应用连接池的步骤
1. 单击“开始”,指向“程序”,然后单击“控制面板”。
2.双击“管理工具”,然后双击“Int.Net”信息服务(IIS)。
3.右击“应用程序池”,指向“新建”,然后单击“应用程序池”。
4.在“应用程序池ID”文本框中键入 AppPool1。
5.单击”确定“。
将应用程序分配到应用程序池
1.开始-->程序-->控制面板-->管理工具-->Inte.Net 信息服务(IIS)。
2.Web-->默认Web站点-->右击"DebugApp1",-->属性。
3.主目录-->应用程序池-->AppPoo1-->确定。
方法三:修改网站目录所在文件夹的访问权限
找到当前网站目录-->右键-->属性-->安全-->添加-->高级-->立即查找-->选择Users用户(或Everyone)->确定
【如果没有“安全”选项,可如下解决:
资源管理器-->工具-->文件夹选项-->查看-->去掉“使用简单文件共享(推荐)”前面的对勾-->确定】
我通过第一种方法解决了
docker – 如何从主机访问容器的Web应用程序
我在Docker容器中运行一个站点,导出以下内容
https://172.17.0.2:8443/admin/>
http://172.17.0.2:8463/users/
$docker run -it -d --expose=8000-9900 ubuntu-java8-webapp
bf193d011fd8....
Docker PS cmd
$docker ps -a
CONTAINER ID IMAGE COMMAND PORTS NAMES
bf193d011fd8 ubuntu-.... "/bin/bash" 8000-9900/tcp desperate_mclean
Docker ls cmd
$docker-machine ls
NAME ACTIVE DRIVER STATE URL DOCKER ERRORS
default * virtualBox Running tcp://192.168.99.100:2376 v1.10.3
Docker机器ip cmd
$docker-machine ip default
192.168.99.100
我如何访问该网站?万一重要的是,我在Mac上运行docker.
https://192.168.99.100:8443/admin
http://192.168.99.100:8463/users
但理想情况下,你会:
>将这些端口映射到主机:
docker run -p 8443:8443 -p 8463:8463 ...
> port-forward those port to your actual host through VirtualBox VM Network setting,并访问该网站:
https://localhost:8443/admin
http://localhost:8463/users
关于访问外部文件到我们的Web应用程序和访问外部文件到我们的web应用程序中的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于2019测试指南-web应用程序安全测试(二)指纹Web应用程序、android – 如何找到我们可以在我们的应用程序中使用其他应用程序时使用的“公共”意图、asp.net配置IIS后"服务器应用程序不可用"的解决办法 服务器应用程序不可用 您试图在此Web服务器上访问的Web应用程序当前不可用、docker – 如何从主机访问容器的Web应用程序的相关信息,请在本站寻找。
本文标签: