ファイルには、vulnerabilities-str_replace関数のバイパスが含まれ、切り捨てバイパスが含まれています

str_replace関数のバイパス

実験環境DVWA、セキュリティメディア
プログラマが防御のためにstr_replace関数を使用することがあります。この関数は、二重書き込みバイパス置換ルールを使用して簡単にバイパスできるため、非常に安全ではありません。

バイパス方法

たとえば、page = hthttp:// tp://192.168.0.103/phpinfo.txtの場合、str_replace関数はhttp://を削除するため、page = http://192.168.0.103/phpinfo.txtの場合、リモートコマンドは正常に実行されます。

同時に、 "... /"と "... \"のみが置き換えられるため、絶対パスを含むファイルを含めることに制限はありません。

3つの例

1.ローカルファイルに
http://192.168.0.103/dvwa/vulnerabilities/fi/page=…/./…/./…/./…/./…/./…/./…/./… が含まれている/./…/./…/./Xampp/htdocs/dvwa/php.ini2
.絶対パスはまったく影響を受けません
http://192.168.0.103/dvwa/vulnerabilities/fi/page=C:/xampp/htdocs /dvwa/php.ini
3.リモートファイルには
http://192.168.0.103/dvwa/vulnerabilities/fi/page=htthttp://p5.12.1phpphp.txt が含まれています

切り捨てられたバイパスを含む

防衛コード

		<?php
	if(isset($_GET['page'])){
		include $_GET['page'] .".php" ;
	}else{
		include 'home.php';
	}
?>

パラメータが割り当てられているかどうかを判断し、値が割り当てられている場合はパラメータ変数を含め、.......防御のためのphpを追加します。コピーされていない場合は、home.phpを含めます。
このメソッドは、magic_quotes_gpc = offの場合にのみ適してい
ます。 4.これは、%00の切り捨てによってバイパスできますが、次のように、今ではわかりにくいです。

index.php?file=info.txt//////////////…………超过一定数据的/。

個人的な考え

防御手段を回避することは、単に傍受されないだけでなく、可能な防御手段を使用し、他者の手段を自分のものとすることで、一部の防御手段を簡単に回避できる場合があります。

元の記事94件を公開 賞賛された8件 訪問5219件

おすすめ

転載: blog.csdn.net/weixin_43079958/article/details/105398623