Upgrading simple shells to fully interactive TTYs

Every pentester knows that amazing feeling when they catch a reverse shell with netcat and see that oh-so-satisfying verbose netcat message followed by output from id.

And if other pentesters are like me, they also know that dreadful feeling when their shell is lost because they run a bad command that hangs and accidentally hit “Ctrl-C” thinking it will stop it but it instead kills the entire connection.

https://blog.ropnop.com/upgrading-simple-shells-to-fully-interactive-ttys/

踩了個挺沒面子的坑,分享一下。

給某網站做的 CDN 服務器,不知道為什麼複製粘貼的配置全是 proxy_cache_valid any 30d;

然後就一直有一些不大不小的問題,比如明明存在的文件卻變成了 404 …

今天終於搞懂了 proxy_cache_valid 原來是靠狀態碼緩存的(我一直以為 proxy_cache_revalidate on; 不會讓這種問題發生 ),也就是還未上傳的文件被訪問了一次的話 30 天就別想訪問了 Orz…

現在改成這樣了:

proxy_cache_valid 200 30d;
proxy_cache_valid 404 1m;

刪除阿里雲 CentOS 主機的開機自啟服務( aliyun.service )

wget http://update.aegis.aliyun.com/download/uninstall.sh
chmod +x uninstall.sh
./uninstall.sh
rm uninstall.sh

systemctl stop aliyun.service
systemctl disable aliyun.service
rm /etc/systemd/system/aliyun.service
rm /usr/sbin/aliyun-service
systemctl daemon-reload

chkconfig agentwatch off
chkconfig --del agentwatch
rm /etc/init.d/agentwatch

systemctl reboot

WordPress / NGINX HTTP Response Splitting

最近開始使用 Detectify – 一款個人十分喜歡的在線網站掃描工具。驚訝的發現由於 WordPress 官方的一個 Nginx 推薦配置,很多人都因此存在這個問題。

長話短說,WordPress 官方推薦的一個 wp-admin 轉發規則:

rewrite /wp-admin$ $scheme://$host$uri/ permanent;

然而這個規則的 $uri 是可以帶有轉義字符的函數,於是就導致了下面的漏洞。

curl https://holywhite.com/%0d%0asplitting:/wp-admin --http1.1 -v

Response:

< HTTP/1.1 301 Moved Permanently
< Server: nginx
< Date: Fri, 26 Oct 2018 01:05:04 GMT
< Content-Type: text/html
< Content-Length: 162
< Location: https://holywhite.com/
< splitting:/wp-admin/
< Connection: keep-alive
<

經過一點點研究,目前個人改為了更為安全的函數去解決這個問題。

rewrite /wp-admin$ $scheme://$host$request_uri/ permanent;