服务器渗透测试练习(插曲2:使用别人的靶场)

#0:new

之前都是自己动手,这次看看别人做到web靶场。这里笔者使用的是:http://google-gruyere.appspot.com/(当然,这个是Google的东西,没有魔法(呵呵,自己懂)是不行的,所以也可以到这篇文章去找自己上得去的靶场)

#1:如何使用

访问http://google-gruyere.appspot.com/part1以了解如何使用该网址,以及一些包含的漏洞。
然后按照网站中的setup(设置)栏目进行自己靶场的建立,并记住自己的唯一ID(https://google-gruyere.appspot.com/12345/中的12345(这里使用的是假的ID))或者直接收藏该页面。

#2:熟悉一下

访问自己的靶场,看到上面的菜单栏有两个可能会有可以进行攻击的地方,一个是New Snippet(新片段),一个是upload(上传),那么我们来逐一测试一下。

#0:New Snippet

点击New Snippet,出现一个输入框。来试一下,随便输入一些内容(这里笔者输入的是test),点击确定。

会发现跳转到了My Snippet页面,然后就看到多出来了一个test字样,点击Home,就会看到test出现在了主页,说明网站会将输入输出在网页中,也许会有XSS,这里先不管,看看另一个。

#1:upload

构建一个非常简单的html文件(这里笔者使用的是apache的默认index页面),然后上传到网页,网页会提示你可以通过哪个网址访问网页,我们照办。

我们获得了一个网页(有时间的可以试一下别的网页格式,但是至少笔者尝试过php页面,是无法解析的),这个网页只能执行JS。

让我们重新访问我们的网页,但是我们要“不小心”将网址后面的文件名输错,看看网站会对不存在的文件做何提示。

第一个/后面是我们注册的用户名,第二个/后面是我们输入的文件名,看来如果是不存在的文件,网站会将(相对)路径输出在网页中,也许也有XSS。

#3:测试

#0:New Snippet

我们New Snippet,输入

<script>alert("XSS!")</script>

但是在确认之后我们发现没有script标签了,也就是script标签被屏蔽了。

在多次实验之后,我们会发现嵌套标签和转换大小写的方法都没有用,所以这个地方没办法进行JS命令的执行。

真的吗?

如果还记得插曲1中的其他方法,那么我们可以试一下。New Snippet输入

<img src="slnvgsdlkn" alt="" onerror="alert('XSS!')">

确认,不出所料,我们得到了一个提示。

所以这个地方还是可以使用的。

#1:upload

刚才在上传文件之后访问文件时我们“不小心”输错了文件名,然后我们发现,网址将不存在的文件的(相对)路径原样输出了,那么有没有可能这里有一个漏洞呢?

将文件名(即之前的/askbfcAS/inde)改为

/<script>alert('XSS!')</script>

注意前面有一个/,然后访问。

确实,网站输出了提示。

我们更改一下输入,看看有没有更带劲的东西

/<script>t=document.getElementsByClassName('message')[0];t.textContent='XSS!'</script>

这个是将错误页面红色提示框的内容改为“XSS!”,重新访问,我们发现错误提示确实被替换了。

好,然后就可以参考我的这篇文章进行JS的注入了。

等等,上传文件,那么网站会不会进行类型的检测呢?如果不,我们就可以上传恶意的JS文件之类的东西,然后通过网页进行调用。

自己编写一个JS文件(这里自己写,总之就是可以执行一些命令的),然后编写一个html文件来进行调用(最好多写一些带ID属性的标签,方便JS查找元素,或者也可以直接用JS创造元素),并将两个文件都上传,然后自行测试效果。

这篇文章比较粗略的讲了一下如何发现别人的靶场中的漏洞,要是对前文说的script标签的屏蔽有兴趣的可以访问这个网站,这是一个专门练习如何绕过对script标签检测的网站。

posted @ 2021-03-26 19:58  awcyvan  阅读(155)  评论(0)    收藏  举报