Hacking PHP
2883 ワード
Edit by Qsaka
このpaperは個人の学習ノートにすぎないので、漏れがあれば、指摘を歓迎します.
0 X 01 SQL注入
ここでは主にPHPの注入防止のいくつかの配置であり,注入手法はこれ以上述べない.
magic_quotes_gpc
magic_quotes_runtime
データベースまたはファイルから取得したデータをフィルタし、内容をmagic_にフィルタします.quotes_gpcは一致した.しかしPHP 5.4で廃棄される.
magic_quotes_sybase
$GET $_POST $_COOKIE
safe_mode
safe_modeはPHP 5.3.0で廃棄し、PHP 5.4.0で除去する.
0X02 XSS
0 X 06ファイル操作
ファイル操作には、アップロード、読み取り、書き込み、ダウンロード、含む、削除が含まれます.
ファイルの内容
ファイルはローカルファイル含む(LFI)に分けられ、リモートファイル含む(RFI).リモートファイル含むにはは、 .は複数の が修復される.特に、リモートファイルを含むことができる場合、URLの とみなされる.
ファイルのアップロード apacheまたはiis 6.0の解析脆弱性 を利用する を迂回する ファイルヘッダ を変更
0 X 07コード実行
コード実行相関関数
0 X 08コマンド実行
コマンド実行関連関数
0 X 09変数オーバーライド
変数オーバーライド・ホールとは、ユーザーが入力した変数がプログラム内の元の変数の値をオーバーライドすることを意味します.変数オーバーライド・ホールを引き起こす可能性のある関数
変数オーバーライドホールは、一般的に他の攻撃方法と結合する必要があります.
0 X 0 B論理脆弱性
ここでは簡単にいくつか挙げます なし の二次注入をもたらす. オンライン支払論理脆弱性総括 検証コードセキュリティ問題要約 パスワード復元論理脆弱性総括 0 X 0 A権限をバイパス
権限が迂回するのも実は論理的な抜け穴で、水平越権と垂直越権の2種類に分けられます.wooyun小川のpaper:私の越権の道
Reference
コード監査入門総括高級PHPアプリケーション脆弱性審査技術PHPファイル脆弱性総括論PHPよく見られる脆弱性業務安全脆弱性掘り起こしまとめまとめ
このpaperは個人の学習ノートにすぎないので、漏れがあれば、指摘を歓迎します.
0 X 01 SQL注入
ここでは主にPHPの注入防止のいくつかの配置であり,注入手法はこれ以上述べない.
magic_quotes_gpc
$_GET $_POST $_COOKIE
変数の' " \ (NULL)
をエスケープする.しかし、この特性はPHP 5である.3.0では既に推奨されておらず、PHP 5.4.0から削除されました.$_SERVER
は濾過されませんmagic_quotes_runtime
データベースまたはファイルから取得したデータをフィルタし、内容をmagic_にフィルタします.quotes_gpcは一致した.しかしPHP 5.4で廃棄される.
magic_quotes_sybase
$GET $_POST $_COOKIE
'
",
空白文字(NULL)`がエスケープされます.このオプションはmagic_quotes_gpcを完全に上書きします.safe_mode
safe_modeはPHP 5.3.0で廃棄し、PHP 5.4.0で除去する.
0X02 XSS
htmlspecialchars()
デフォルトでは、"
のみがフィルタされます.0 X 06ファイル操作
ファイル操作には、アップロード、読み取り、書き込み、ダウンロード、含む、削除が含まれます.
ファイルの内容
ファイルはローカルファイル含む(LFI)に分けられ、リモートファイル含む(RFI).リモートファイル含むには
allow_url_include = On
が必要である.リモートファイル含むには、PHPの入出力ストリームphp://
または擬似プロトコルdata://
によって、include($_GET['file'].'.html')
のようなファイルが何らかの制限を加えられている場合に実現することもできる.ここでは、いくつかのbypassの方法を示す%00
によって切断することによって含まれる.ただし、これは、NULL
文字をフィルタリングしていない場合である.また、PHP 5.3以降のバージョンでは利用できない..
を利用して遮断する.windowsでは>=240個、linuxでは>=2040個が必要である.この方法はPHP 5.3.0後にも? #
を利用して切断を実現することができる.file=http//www.example.com/shell.php?
は、.html
が要求パラメータファイルのアップロード
php3 php4 php%20
%00
遮断、例えば1.php%00.jpg
content-type
0 X 07コード実行
コード実行相関関数
eval() assert() preg_replace() call_user_func() call_user_func_array() array_map() array_filter() array_reduce()
等0 X 08コマンド実行
コマンド実行関連関数
exec() system() shell_exec() passthru() pcntl_exec() popen() proc_open()
、それ以外に逆引用符で囲まれた文字列もコマンド実行として扱われる0 X 09変数オーバーライド
変数オーバーライド・ホールとは、ユーザーが入力した変数がプログラム内の元の変数の値をオーバーライドすることを意味します.変数オーバーライド・ホールを引き起こす可能性のある関数
extract() parse_str()
PHPの可変変数も、次のフィルタ処理などの変数オーバーライドを引き起こす可能性があります.foreach(array('_COOKIE', '_POST', '_GET') as $_request) {
foreach($$_request as $_key => $_value) {
$$_key = addslashes($_value);
}
}
変数オーバーライドホールは、一般的に他の攻撃方法と結合する必要があります.
0 X 0 B論理脆弱性
ここでは簡単にいくつか挙げます
header()
ジャンプ後exit()is_numeric()
はhexで迂回することができ、==
と===
権限が迂回するのも実は論理的な抜け穴で、水平越権と垂直越権の2種類に分けられます.wooyun小川のpaper:私の越権の道
Reference
コード監査入門総括高級PHPアプリケーション脆弱性審査技術PHPファイル脆弱性総括論PHPよく見られる脆弱性業務安全脆弱性掘り起こしまとめまとめ