目前ASP网站已经很少了,主流的是PHP和Java为多,ASP只有一小部分了,在一些老的系统、Web应用中有。
在一些新的业务Web应用中基本看不到ASP了。
由于大部分ASP程序与ACCESS数据库搭建,但ACCESS无需连接,都在脚本文件中定义配置好数据库路径即用,不需要额外配置安装数据库,所以大部分提前固定好的数据库路径,如默认未修改,当攻击者知道数据库的完整路径,可远程下载后解密数据实现攻击。
若使用SQL Server数据库则存在账号密码。
php、Java等语言开发的web应用则没有此类漏洞
参考文章:https://blog.csdn.net/qq_41210745/article/details/103437683
远程执行代码漏洞存在于 HTTP 协议堆栈 (HTTP.sys) 中,当 HTTP.sys 未正确分析经特殊设计的 HTTP 请求时会导致此漏洞。 成功利用此漏洞的攻击者可以在系统帐户的上下文中执行任意代码。
虽然是15年的漏洞,但是现在还有很多真实应用中存在,该漏洞和权限不相关,只是利用它做一个崩溃(蓝屏)漏洞,该漏洞利用成功就会导致崩溃(蓝屏),对业务有破坏性。
即利用该漏洞拿不到权限,但是可以对目标系统造成破坏(蓝屏)。
Windows 7、Windows Server 2008 R2、Windows 8、Windows Server 2012、Windows 8.1 和 Windows Server 2012 R2
安装了IIS6.0以上的Windows 7、Windows Server 2008 R2、Windows 8、Windows Server 2012、Windows 8.1 和 Windows Server 2012 R2版本
只要安装过IIS就行
msfconsole
use auxiliary/dos/http/ms15_034_ulonglongadd
set rhosts xx.xx.xx.xx
set rport xx
run
实在没有漏洞提交可以提交该漏洞,但是在测试时要小心,会导致目标系统崩溃
使用以下命令验证网站是否存在该漏洞:返回416,说明该系统存在漏洞
curl http://[目标地址] -H "Host: [目标地址]" -H "Range: bytes=0-18446744073709551615"
此漏洞实际是由HTTP请求中旧DOS 8.3名称约定(SFN)的代字符(~)波浪号引起的。它允许远程攻击者在Web根目录下公开文件和文件夹名称(不应该可被访问)。攻击者可以找到通常无法从外部直接访问的重要文件,并获取有关应用程序基础结构的信息。
Windows自己的命名造成的安全问题
为了兼容16位MS-DOS程序,Windows为文件名较长的文件(和文件夹)生成了对应的windows 8.3短文件名。在Windows下查看对应的短文件名,可以使用命令dir /x
利用条件:基本上只要是IIS搭建的源码都可以用
后台路径获取,数据库文件获取,其他敏感文件获取等
只能探侦前六位
https://github.com/irsdl/IIS-ShortName-Scanner
https://github.com/lijiejie/IIS_shortname_Scanner
扫网站目录方法:
字典扫,看运气
该漏洞通过网站自身的IIS短文件扫到,而且只能扫到前六位,运用价值:找后台。
比较鸡肋,但是有时候可以发挥作用。
使用上述工具
python iis_shortname_scan.py http://192.168.0.42:89/
结果:
该漏洞只有两个版本存在
1、该版本默认会将*.asp;.jpg 此种格式的文件名,当成Asp解析
2、该版本默认会将*.asp/目录下的所有文件当成Asp解析。
如:
logo.asp;.jpg
xx.asp/logo.jpg
6版本一般是Windows2003搭建在一起
2008就是7版本和7.5版本了
在一个文件路径(/xx.jpg)后面加上/xx.php会将/xx.jpg/xx.php 解析为php文件
(有补丁)
配合文件上传获取Webshell
该版本本身就少,以后会越来越少,windows用iis服务器的也不多。而且7版本有很多补丁已经修复了。
很少有该漏洞。
出漏洞时官方不认定6版本漏洞,所以没有补丁,但是7版本有补丁。所以7版本很少漏洞,6版本该漏洞多。
即只有低版本有该漏洞
IIS<=6.0 目录权限开启写入,开启WebDAV,设置为允许
可以直接上传文件。(postman)
搭建时配置导致的安全问题。
漏洞很少很老,只有老网站服务器系统才可能会有
真实的新上线的系统中不可能有该漏洞
https://cloud.tencent.com/developer/article/2050105
**数据库注入,某一个数据库注入。注入的攻击方法和攻击流程是和数据库类型相关的,并不是和脚本语言相关的。**语言使用Java,php等都无关。
程序对用户输入的数据没有过滤,导致重新定义查询结果的SQL被执行(攻击者定义想要的执行结果语句)
SQL语句在数据库中执行,不同数据库有不同SQL语句,有SQL执行功能
数据库不同,功能不同,架构不同,攻击流程也不同。
判断是否存在SQL注入:
and 1=1
,报错报错情况应是查询后没有数据的报错,而不是代码程序的容错页面(404页面),容错页面是代码逻辑的设置。而不是存在注入的表现。
ACCESS数据库无管理帐号密码,顶级架构为表名,列名(字段),数据,所以在注入猜解中一般采用字典猜解表和列再获取数据,猜解简单但又可能出现猜解不到的情况,由于Access数据库在当前安全发展中已很少存在,故直接使用SQLMAP注入,后续再说其他。
手工注入复杂一点,学习手工注入的意义在于了解原理,去合适的变形,WAF绕过等情况可能会用到。
大部分都会选择工具,工具简单便捷。
python sqlmap.py -u "" --tables //获取表名
python sqlmap.py -u "" --cloumns -T admin //获取admin表名下的列名
python sqlmap.py -u "" --dump -C "" -T admin //获取表名下的列名数据
执行命令:
python sqlmap.py -u "http://192.168.0.42:89/Pic.asp?id=2" --tables //获取表名
结果:获取到三个表明,后续可根据表明继续进行测试。
若扫描到管理员账号,需要找到后台,即可使用前面的短文件漏洞以及目录扫描
进入后台后利用文件上传可以上传后门拿到webshell