小言_互联网的博客

内网渗透测试以及文件上传漏洞总结

234人阅读  评论(0)

一、xss

原理:用户输入数据被当做前端代码执行。

第一个是用户能够控制输入

第二个是原本程序要执行的代码,拼接了用户输入的数据

用途:盗取Cookie,获取内网IP,获取浏览器保留的明文密码,截取网页屏幕,网页上的键盘记录。

检测方法:让浏览器弹窗,其中最经典的是

1.<script>alert(1)</script>

2.伪协议:<a href=javascript:alert(1) />1</a>

3.事件型:<img src=# οnerrοr=alert(1) />

其他绕过检测方法详见:

https://zhuanlan.zhihu.com/p/26177815   

https://blog.csdn.net/qq_29277155/article/details/51320064   

https://www.cnblogs.com/H4ck3R-XiX/p/12732356.html

1、反射型xss

提交数据成功实现了xss,但是只是对本次访问产生影响,不是持久型攻击

2、存储型xss

提交的数据成功的实现了XSS,存入了数据库,别人访问这个页面的时候就会自动触发。

一般出现在任何可能插入数据库的地方:用户注册时,留言板、上传文件的文件名、(管理员可见报错信息)

(1)同源策略

同域名、同端口、同协议。限制了Cookie的作用域。

原理:A网站只能访问A的Cookie,B网站只能访问B的Cookie,浏览器根据不同的网站自动填充不同的Cookie。

(2)使用xss平台

因为XSS payload 结构复杂,所以一般情况下我们都是使用XSS平台去获取cookie,建议隐私模式访问,避免非法XSS平台获取信息。

3、dom型xss

利用dom对象触发xss

DOM是一个与平台、编程语言无关的接口,它允许程序或脚本动态地访问和更新文档内容、结构和样式,处理后的结果能够成为显示页面的一部分。

(1)document对象属性

document.body :对<body>元素直接访问

document.cookie : 获取cookie值。

ducument.domain :返回域名

document.lastModified:返回文档被最后修改的容器和时间 。 可以用来判断伪静态。时间变了就动态,时间不变就静态。

ducument.referrer:返回载入文档的文档URL

ducument.title:返回文档标题

ducument.URL : 返回文档URL

document.write() : 输入的内容会输出到文档上。 Eg: document.write(‘<script>alert(1) </script>‘)   可接受native编码

document.writeIn():等同于write方法,不同是在每个表达式后写一个换行符。

document.close():关闭用document.open()方法打开的输出流,显示选定的数据

document.getElementById():返回对拥有指定id的第一个对象的引用

document.getElementsByName():返回带有指定名称的对象集合

document.getElementsByTagName():返回带有指定标签名的对象集合

document.open():打开一个流,收集来自任何document.write()或ducument.writeIn()方法的输出

(2)高危函数

document.write()

innerHTML

eval()

二、csrf

跨站请求伪造

成因:网站cookie在浏览器中不会过期,只要不关闭浏览器或者退出登录,name只要是之后访问该网站,都会默认是登录状态。攻击者发送伪造好的csrf脚本或包含csrf脚本的链接,可能会执行用户不想执行的功能。

可以让Burp快速生成CSRFpoc

1、如何预防CSRF

可以强行用验证码(强制用户必须和应用进行交互,但是体验性太差了)     

请求中加随机Token值:Token就是一段字母数字的随机值,访问时服务端会生成一个随机的token值并传回到前端的表单里,当我们提交表单时,token会作为一个参数提交到服务端进行验证(终极方案)

使用refer:Refer记录了该http请求的来源地址,访问一个安全受限页面请求必须来自同一个网站,如果不是则请求不合法无法生效(可绕过)

2、过程

用户A登陆B站,在登陆网站B时,收到了攻击者C发送的盗取cookie进行操作的链接到C,得到cookie后csrf进行操作

三、文件上传漏洞

1、客户端检测

(1)文件上传:修改图片、发布图片、发布附件、各种各样

2、服务端检测

一句话木马(webshell):eval函数把字符串当做php代码执行

如果文件上传功能制作时不考虑安全性,则默认存在文件上传漏洞

3、前端验证绕过

前端验证是扯淡,约等于没有

特征:上传一个php文件一句话木马,页面出现弹框,但这个弹框无法抓包

后端检测可以抓到数据包

这里做法是上传数据包,用Burp抓包修改文件后缀为允许的格式。

4、content-type绕过

特征:Content-Type的意思是后端检测,可以抓包,但不看后缀,只要看数据包中的Content-Type。

做法是修改Burp抓包中的content-type值为上传允许的值,applicaiton/stream修改成image/jpeg,或者直接修改文件后缀名,在抓包时再修改为php后缀。

5、黑名单绕过

特征:在黑名单上的都不能通过

(1)利用中间件解析

由于过滤不严谨,默认状态下,.php3,.php4,.php5,.phtml都会被解析成php

jsp:jspx,jspf

asp:asa,cer,aspx

php:php3,php4,php5

exe:exee

(2)混子法找漏洞

关键:上传html,提交存储型XSS

1.html中输入<script>alert(/xss/)</script>

6、.htaccess

超文本入口,也被称为分布式配置文件,提供了针对目录改变配置的方法(web容器),在一个特定的文档目录中放置一个包含一个或者多个指令的文件,以作用于此目录以及所有子目录。

如果无法重命名为.htaccess,可以在cmd中用ren 11.htaccess .htaccess来重命名。

Apache里不默认开启的。(一般有伪静态的网站是开启的)

在.htaccess文件里添加

AddType application/x-httpd-php  .jpg     意思是把jpg文件当做php解析

7、后缀大小写绕过

.php.Php.pHp.phP被限制,但是.PhP或者.PHp没有被限制,可以更改后缀大小写进行绕过

8、文件后缀空绕过

原理:于操作系统来说.php和.php (空格)是一样的,但对于检测来说,他们是不同的

可以用Burp抓包,在文件后缀名加上空格再放包。

9、文件后缀点绕过

原理:操作系统对php和php.是一样的,但对于检测来说不一样

10、::$DATA(Windows文件流绕过)

::$DATA(windows文件流绕过),这里利用到了一个NTFS交换数据流(ADS),ADS是NTFS磁盘格式的一个特性,在NTFS文件系统下,每个文件都可以存在多个数据流。

原理:其他文件可以“寄存”在某个文件上,而在资源管理器中只能看到宿主文件,找不到计算文件。

可以在Burp抓包后,在文件名后加上::$DATA,再放包。

不过在进入phpinfo()时,要删除后缀的::$DATA

11、双写文件后缀绕过

当遇见了恶意的东西,我们有两种处理方法,

1、不允许整个数据包上传。

核心:2、把恶意语句替换成空。php=>自动替换成空。1.php=>1.

1.pphphp=>1.php  如果有多次循环检测就不行

检测到一个php,替换成空,然后又组成一个php

12、%00截断和00截断绕过

这是最为常见的白名单绕过

(1)%00截断

用于get传参:加%是url编码需要。修改直接在Burp抓包界面修改

(2)00截断

用于post传参:与%00本质没有区别,有适用范围(php5.4以下)

在Burp抓包界面在post传参文件后缀添加a(61),进入hex模式吧61改成00

13、图片马绕过

用于不仅检测文件后缀,还检测文件内容

生成一个图片与一句话木马的集合

14、getimagesize图片类型绕过

找一个允许的后缀名的图片,生成图片马上传

15、php_exif模块图片类型绕过

直接图片马解决

16、二次渲染绕过

特征:上传图片马成功,再次从上下载图片,我们用hex查看发现图片中的一句话木马不见了

这里使用gif文件头进行绕过

找一个gif文件,用hex模式打开,在第三行或者第四行直接输入一句话木马。

17、move_uploaded_file()截断

相当于是个00截断,这里上传一个图片马,发现是post传参,最终目的是要解析php文件,按照post00截断做就可以了。

18、条件竞争绕过

检测机制:

1、先检测,检测通过了再上传。

2、先上传,检测是否合规,不合规就删除。(存在条件竞争)

原理:如果我们能卡一个空档期,在文件上传成功,还没有删除的时候访问他,就可以利用文件了。用burp抓两个包,上传包、访问包,分别在useragent下设置payload,不断上传和访问。

四、文件解析漏洞

1、IIS6.0解析漏洞

解析:把x后缀的文件当做后端脚本执行

大部分中间件都可以配置后缀识别。

(1)IIS asa漏洞

原理:windows server 2003 默认使用的IIS6.0,当拓展名为asa,cdx,cer时也会交给asp.DLL执行

抓包修改文件后缀名即可

(2)IIS6.0;截断漏洞

原理:iis6.0中a.asp;.jpg这一句话,;起到了类似00截断的作用

ps:00截断是php代码问题,与容器无关,;截断是容器问题。

上传图片马,修改文件后缀为1.php/.jpg

(3)IIS6.0目录解析漏洞

原理:当在一个以xx.asp为后缀的文件夹中只放一个1.txt文件,iis6.0会把1.txt当asp执行

直接上传图片马即可

2、CGI解析漏洞

CGI是一个php通信接口,在9000端口上。Nginx默认以CGI方式支持php解析。在IIS7.0,IIS7.5,Lighttps等web容器中也常常出现这样的解析漏洞。Apache不支持。

原理:复制图片地址,在后面加上/.php,如果出现乱码,就存在CGI解析漏洞

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


转载:https://blog.csdn.net/weixin_45540609/article/details/116381123
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场