[ctfshow]新手必刷_菜狗杯-遍地飘零

admin 2024年11月21日11:13:04评论15 views字数 910阅读3分2秒阅读模式

[ctfshow]新手必刷_菜狗杯-遍地飘零

[ctfshow]新手必刷_菜狗杯-遍地飘零

免责声明

      蟹堡安全团队的技术文章仅供参考,任何个人和组织在使用网络时应当遵守相关法律法规,不得利用网络从事危害国家安全、荣誉和利益的活动。未经授权,请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责,蟹堡安全团队及文章作者不承担任何责任。本文所提供的工具仅用于学习,禁止用于其他用途!

01

代码审计

<?phpinclude "flag.php";highlight_file(__FILE__);$zeros="000000000000000000000000000000";foreach($_GET as $key => $value){    $$key=$$value;}if ($flag=="000000000000000000000000000000"){    echo "好多零";}else{    echo "没有零,仔细看看输入有什么问题吧";    var_dump($_GET);}没有零,仔细看看输入有什么问题吧array(0) { }

    逐行分析:

foreach($_GET as $key => $value){    $$key=$$value;}  将GET请求参数中的键值对分开,分别获取变量名为键/值所对应的变量的数值,例如  $a = "1";  $b = "a";  $c = $$b;  那么$c = $"a" = $a = 1$flag=="000000000000000000000000000000"  如果flag变量诗句等于000000000000000000000000000000,那么就会进if语句块var_dump($_GET);  将会展示_GET变量所有的数据信息

     所以经过上面的分析可知,在foreach语句块中会出现变量覆盖漏洞,我们需要利用var_dump($_GET);来获取flag,所以在foreach语句块运行结束后,"_GET"对应的变量的数值应该是$flag。

    所以在GET请求参数中,必须存在一个键名为_GET和一个键名为flag

[ctfshow]新手必刷_菜狗杯-遍地飘零

原文始发于微信公众号(蟹堡安全团队):[ctfshow]新手必刷_菜狗杯-遍地飘零

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年11月21日11:13:04
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   [ctfshow]新手必刷_菜狗杯-遍地飘零https://cn-sec.com/archives/3404769.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息