开源网站的漏洞复现
本文的开源网站主要选取了appcms、wordpress两个开源网站来复现。
如果需要这两个网站的压缩包请自取:https://blog.csdn.net/weixin_45873676/article/details/112985656
一、appcms
主要应用XSS。
网页打开如下所示:
随意点开某个软件它都存在留言板如下:
用户可以随意评论,如下所示:
直接上传xss恶意代码显然不可取,也无法成功。
检查网页元素,不难发现它的评论是在依次出现的,那它是不是存在xss弹弹弹的可能性呢?
首先评论是依次出现的,然后发现回显评论的时候它会带着我们本机ip地址,那它是怎么获取我们的ip地址的呢?ip地址是可以伪造的。两者情况都有了,现在我们还需要知道PHP是怎么注释的呢?
依次出现的问题已解决,X-FORWARDED-FOR用来表示 HTTP 请求端真实 IP伪造,我们通过伪造X-FORWARDED-FOR字段同样也可以达到伪造ip的目的,最后是PHP的注释如下:
//这是单行注释
/*
这就是多行注释
*/
那最后我们忙活了这么久有什么用呢?<script>alert(12148)</script>
标签一次性传输不了,那我们是不是可以把它拆开传输呢?由于它是依次出现,显然可取但是中间还有其他部分,那是不是多行注释就有用了?说干就干!
正常标签如下:
<script>alert(12148)</script>
我们是不是可以写成这样呢?
<script>/**/alert(12148)/**/</script>
将它拆分成如下:
<script>/*
其他代码
*/alert(12148)/*
其他代码
*/</script>
拆分成如上三段,我们就可以使用两条留言来上传这段代码了,每条留言我们都有留言内容和X-FORWARDED-FOR这两个地方可以用,那我们是不是可以这样上传呢?
第二条:
内容:
随便写
X-FORWARDED-FOR:
<script>/*
第一条
内容:
*/alert(12148)/*
X-FORWARDED-FOR:
*/</script>
思路清晰,那我们就上传吧。上传以后由于它是存储型,我们需要模拟管理员登录后台才能看到。
展示结果如下:
可见弹窗成功,漏洞复现成功。观看源代码结果也和我们预想的一模一样,如下所示:
漏洞复现成功。
二、wordpress
主要应用数据库四字节截断。
网站打开如下:
它的漏洞是由于mysql输入长字节会发生截断,导致出现了这个漏洞。
<abbr title="qweqw style=display:block;position:fixed;width:100%;height:100%;top:0; οnmοuseοver=alert(1)// 𝌆">
在输入框输入这条语句,则会出现截断,出现弹窗。结果展示如下:
我们在数据库中查看这条数据,如下:
漏洞复现成功。
学习结束,其他知识再见!