|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
即使你理解不了PHP,但是也必须先跟它混个脸熟,看,一遍遍的看,看的同时一边琢磨,一边按照它所教的打代码,即使你搞不清楚那些代码到底是干嘛的,但是起码你应该找找感觉。 一 代码履行函数
PHP中可以履行代码的函数。如eval()、assert()、``、system()、exec()、shell_exec()、passthru()、 escapeshellcmd()、pcntl_exec() 等
demo code 1.1:
二 文件包括代码打针
文件包括函数在特定前提下的代码打针,如include()、include_once()、 require()、require_once()。
当allow_url_include=On ,PHP Version>=5.2.0 时,招致代码打针。
demo code 2.1:
会见http://127.0.0.1/include.php?a=data:text/plain,%3C?php%20phpinfo%28%29;?%3E 即
履行phpinfo()。
三 正则婚配代码打针
尽人皆知的preg_replace()函数招致的代码打针。当pattern中存在/e形式润色符,即答应履行代码。这里咱们分三种情形会商下
3.1 preg_replace() pattern 参数打针
pattern即第一个参数的代码打针。
当magic_quotes_gpc=Off时,招致代码履行。
demo code 3.1:
会见http://127.0.0.1/preg_replace1.php?reg=%3C\/php%3E/e 即
履行phpinfo()。
3.2 preg_replace() replacement参数打针
replacement即第二个参数的代码打针,招致代码履行。
demo code 3.2:
当咱们提交 http://127.0.0.1/preg_replace2.php?h=phpinfo() 即
履行phpinfo()。
3.3 preg_replace()第三个参数打针
咱们经由过程机关subject参数履行代码。提交:http://127.0.0.1/preg_replace3.php?h=
phpinfo()
或 http://127.0.0.1/preg_replace3.php?h=
${phpinfo%28%29}
招致代码履行
demo code 3.3:
四 静态代码履行
4.1 静态变量代码履行
demo code 4.1:
咱们提交 http://127.0.0.1/dyn_func.php?dyn_func=system&argument=ipconfig 履行ipconfig号令
4.2 静态函数代码履行
demo code 4.2:
咱们提交 http://127.0.0.1/create_function.php?foobar=system%28dir%29 履行dir号令
五 其他
5.1 ob_start()函数的代码履行
demo code 5.1:
5.2 array_map()函数的代码履行
demo code 5.2:
咱们提交 http://127.0.0.1/array_map.php?callback=phpinfo 即履行phpinfo()。
5.3 unserialize()与eval()
unserialize()是PHP中利用率十分高的函数。不合法利用unserialize()轻易招致平安隐患。
咱们提交 http://127.0.0.1/unserialize.php?saved_code=O:7:%22Example%22:1:{s:3:%22var%22;s:10:%22phpinfo%28%29;%22;} 即履行phpinfo()。
5.4 轻易招致平安成绩的函数
同类型函数还有良多
array_map()
usort(), uasort(), uksort()
array_filter()
array_reduce()
array_diff_uassoc(), array_diff_ukey()
array_udiff(), array_udiff_assoc(), array_udiff_uassoc()
array_intersect_assoc(), array_intersect_uassoc()
array_uintersect(), array_uintersect_assoc(), array_uintersect_uassoc()
array_walk(), array_walk_recursive()
xml_set_character_data_handler()
xml_set_default_handler()
xml_set_element_handler()
xml_set_end_namespace_decl_handler()
xml_set_external_entity_ref_handler()
xml_set_notation_decl_handler()
xml_set_processing_instruction_handler()
xml_set_start_namespace_decl_handler()
xml_set_unparsed_entity_decl_handler()
stream_filter_register()
set_error_handler()
register_shutdown_function()
register_tick_function()
即使你理解不了PHP,但是也必须先跟它混个脸熟,看,一遍遍的看,看的同时一边琢磨,一边按照它所教的打代码,即使你搞不清楚那些代码到底是干嘛的,但是起码你应该找找感觉。 |
|