PortSwigger 文件上传靶场解题思路

一、通过web shell 上传远程代码

        1、通过wiener用户登录。

        2、 创建1.php文件,内容为:<?php echo file_get_contents('/home/carlos/secret'); ?>

        3、上传1.php文件,返回我的账户。

        4、选中上传的文件,右键查看属性。找到文件上传的位置。

        5、访问2.php文件,服务器将执行脚本并返回服务器执行结果。

        总结:前端无防护、后端无防护、服务器具备执行条件。

二、通过内容类型限制绕过上传web shell

        1、通过wiener用户登录。

        2、创建1.jgp文件,内容为:<?php echo file_get_contents('/home/carlos/secret'); 

        3、 上传文件,通过Burp Suitte 修改文件名,filename=“1.php”,发送。

        4、返回我的账户,选中上传的文件。右键查看属性。找到文件上传的位置。

        5、访问2.php文件,服务器将执行脚本并返回服务器执行结果。

        总结:前端防护,限制上传的文件类型,通过Burp Suitte 修改文件名绕过检测。后端无防护,服务器具备执行条件。

三、通过路径遍历上传web shell

        1、通过wiener用户登录。

        2、创建1.php文件,内容为:<?php echo file_get_contents('/home/carlos/secret'); 

        3、 上传文件,通过Burp Suitte 抓取发送的1.php包,修改filename=“..%2f1.php”,发送。

        4、返回我的账户,选中上传的文件。右键查看属性。找到文件上传的位置。

        5、访问..%2f1.php文件,服务器将执行脚本并返回服务器执行结果。

        总结:前端无防护,后端无防护,服务器具有一定防护,默认上传目录不具备执行权限,更改路径,使其具备执行权限。

四、通过扩展黑名单绕过上传web shell

        1、通过wiener用户登录。

        2、创建1.php5文件,内容为:<?php echo file_get_contents('/home/carlos/secret'); 

        3、创建.htaccess文件,内容为:AddType application/x-httpd-php .php5。

        4、 上传文件,通过Burp Suitte 抓取发送的.htaccess文件包,修改Content-Type:text/plain,发送。

        5、上传1.php5文件,返回我的账户。

        6、选中上传的1.php5文件,右键查看属性。找到文件上传的位置。

        7、访问1.php5文件,服务器将执行脚本并返回服务器执行结果。

        总结:前端无防护,后端配置不解析php文件,通过覆盖配置使.php5 解析成php运行,成功绕过,服务器具备执行条件。

五、通过混淆文件扩展名上传网页外壳

        1、通过wiener用户登录。

        2、创建1.php文件,内容为:<?php echo file_get_contents('/home/carlos/secret'); 

        3、 上传文件,通过Burp Suitte 抓取发送的1.php包,修改filename=“1.php%00.jpg”,发送。

        4、返回我的账户,选中上传的文件。右键查看属性。找到文件上传的位置。

        5、访问1.php文件,服务器将执行脚本并返回服务器执行结果。

        总结:前端无防护,后端设置白名单,只能上传图片格式,通过低版本%00截断进行绕过,最终将截断的1.php上传成功。服务器具备执行条件。

六、通过多语言web shell 上传远程执行代码

        1、通过wiener用户登录。

        2、创建2.php文件内容为:<?php echo file_get_contents('/home/carlos/secret'); 

找一个正常的图片重命名为1.jpg,通过cmb将两个文件合为一个文件。如图:

copy /b 1.jpg+1.php 2.jpg

        3、 上传文件,通过Burp Suitte 抓取发送的2.jpg包,修改filename=“2.php”,发送。

        4、返回我的账户,选中上传的文件。右键查看属性。找到文件上传的位置。

        5、访问2.php文件,服务器将执行脚本并返回服务器执行结果。

        总结:前端无防护,后端验证文件指纹、签名、文件头部,通过真实图片与php代码结合进行绕过。服务器具备执行条件。

七、通过竞争条件上传web shell

        1、通过wiener用户登录。

        2、创建2.php文件内容为:<?php echo file_get_contents('/home/carlos/secret'); 

找一个正常的图片重命名为1.jpg,通过cmb将两个文件合为一个文件。如图:

copy /b 1.jpg+1.php 2.jpg

        3、 上传2.jpg,通过Burp Suitte 发送到intruder模块,修改filename=“2.php”,payload type设置 null payloads,payload option选择contiune indefinitely,点击start attack。

        4、返回我的账户,选中上传的文件。右键查看属性。找到文件上传的位置。

        5、访问2.php文件,服务器将执行脚本并返回服务器执行结果。

        总结:前端设置检查,通过Burp Suitte进行绕过。后端进行检查,可通过时间竞争机制,在检查不成功删除前及进行利用,服务器具备执行条件。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
靶场,是指为信息安全人员提供实战演练、渗透测试和攻防对抗等训练环境的虚拟或实体场地。在不同的领域中,靶场扮演着重要的角色,尤其是在网络安全领域,靶场成为培养和提高安全专业人员技能的重要平台。 首先,靶场安全从业者提供了一个模拟真实网络环境的平台。通过构建类似实际网络的拓扑结构、部署各种安全设备和应用,靶场可以模拟出多样化的网络攻防场景。这使得安全人员能够在安全的环境中进行实际操作,全面提升其实战能力。 其次,靶场是渗透测试和漏洞攻防演练的理想场所。在靶场中,安全专业人员可以模拟攻击者的行为,发现系统和应用的漏洞,并进行渗透测试,从而及时修复和改进防御机制。同时,这也为防御方提供了锻炼机会,通过对抗攻击提高防御能力。 靶场的搭建还促进了团队协作与沟通。在攻防对抗中,往往需要多人协同作战,团队成员之间需要密切配合,共同制定攻击和防御策略。这有助于培养团队合作意识,提高协同作战的效率。 此外,靶场为学习者提供了一个安全的学习环境。在靶场中,学生可以通过实际操作掌握安全知识,了解攻击技术和防御策略。这样的学习方式比传统的理论课程更加生动直观,有助于深化对安全领域的理解。 最后,靶场也是安全社区交流的平台。在靶场中,安全从业者可以分享攻防经验,交流最新的安全威胁情报,共同探讨解决方案。这有助于建立更广泛的安全社区,推动整个行业的发展。 总体而言,靶场在信息安全领域具有重要地位,为安全专业人员提供了实战演练的机会,促进了团队协作与沟通,为学习者提供了安全的学习环境,同时也是安全社区交流的重要平台。通过靶场的实践操作,安全从业者能够更好地应对不断演变的网络威胁,提高整体的安全水平。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值