অনুসন্ধানযোগ্য পিএইচপি ফাংশন


277

আমি ফাংশনগুলির একটি তালিকা তৈরি করার চেষ্টা করছি যা স্বেচ্ছাসেবী কোড কার্যকর করার জন্য ব্যবহার করা যেতে পারে। উদ্দেশ্যটি এমন ফাংশনগুলি তালিকাভুক্ত করা নয় যা কালো তালিকাভুক্ত করা উচিত বা অন্যথায় অস্বীকার করা উচিত। বরং, পিছনের দরজার জন্য আপোষযুক্ত সার্ভারটি অনুসন্ধান করার সময় আমি রেড-ফ্ল্যাগ কীওয়ার্ডগুলির একটি grepসক্ষম -যোগ্য তালিকা রাখতে চাই ।

ধারণাটি হ'ল আপনি যদি একাধিক-উদ্দেশ্যমূলক দূষিত পিএইচপি স্ক্রিপ্ট তৈরি করতে চান - যেমন c99 বা r57 এর মতো একটি "ওয়েব শেল" স্ক্রিপ্ট - আপনি তুলনামূলকভাবে ছোট সেটগুলির এক বা একাধিকটি ব্যবহার করতে যাচ্ছেন ফাইলটিতে কোথাও যাতে ব্যবহারকারীকে স্বেচ্ছাচারিত কোড কার্যকর করতে দেওয়া হয়। এই ফাংশনগুলি অনুসন্ধান করা আপনাকে দশ হাজার-হাজার-হাজার পিএইচপি ফাইলগুলির একটি খড়ের গাদা তুলনামূলকভাবে ছোট স্ক্রিপ্টগুলির নিকটবর্তী পরীক্ষার জন্য সংক্ষিপ্ত করতে আরও সাহায্য করে।

স্পষ্টতই, উদাহরণস্বরূপ, নিম্নলিখিতগুলির কোনওটিকে দূষিত (বা ভয়ঙ্কর কোডিং) হিসাবে বিবেচনা করা হবে:

<? eval($_GET['cmd']); ?>

<? system($_GET['cmd']); ?>

<? preg_replace('/.*/e',$_POST['code']); ?>

এবং তাই এগিয়ে।

অন্য দিন কোনও আপোসযুক্ত ওয়েবসাইটের মাধ্যমে অনুসন্ধান করা, আমি একটি বিদ্বেষপূর্ণ কোডের টুকরোগুলি খেয়াল করিনি কারণ পতাকাটি preg_replaceব্যবহার করে /e( যা, গুরুত্ব সহকারে? কেন সেখানেও রয়েছে ?) বুঝতে পারি নি যে, এটি বিপজ্জনকভাবে তৈরি করা যেতে পারে । অন্য কেউ কি আমি মিস করেছি?

এখন পর্যন্ত আমার তালিকা এখানে:

শেল এক্সিকিউট

  • system
  • exec
  • popen
  • backtick operator
  • pcntl_exec

পিএইচপি এক্সিকিউট

  • eval
  • preg_replace( /eসংশোধক সহ)
  • create_function
  • include[ _once] / require[ _once] ( শোষণের বিবরণের জন্য মারিওয়ের উত্তর দেখুন)

এটি ফাইলগুলির সংশোধন করতে সক্ষম এমন ফাংশনগুলির একটি তালিকা থাকাও কার্যকর হতে পারে তবে আমি কল্পনা করি যে 99% সময় শোষণ কোডটিতে উপরের ফাংশনগুলির মধ্যে একটি অন্তত থাকবে। তবে আপনার কাছে ফাইল সম্পাদনা বা আউটপুট করতে সক্ষম সমস্ত কার্যকারিতার একটি তালিকা থাকলে এটি পোস্ট করুন এবং আমি এটি এখানে অন্তর্ভুক্ত করব। (এবং আমি গণনা করছি না mysql_execute, যেহেতু এটি অন্য শ্রেণীর শোষণের অংশ।


43
সিডনোট হিসাবে, আমি যদি সম্ভব হয় তবে অদূর ভবিষ্যতে সেই তালিকাটি দেখতে চাই :)
ইয়োদা

16
@ ইয়োদা: কোথায় প্রকাশিত? আমি তালিকাটি এখানে আপডেট রাখব, যেহেতু এসও সমস্ত জ্ঞানের উত্স।
টাইলার

3
/eসংশোধক কী করে ?
বিলি ওনিল

6
@ বিলি: eপরিবর্তকটি পিএইচপি কোড হিসাবে মূল্যায়ন করতে প্রতিস্থাপনের স্ট্রিংটিকে তৈরি করে।
nicc.org

1
এটি বলতে হবে: রেজেক্সে কোডটি কার্যকর করা পার্ল এবং সম্ভবত পাইথনও কিছু করে, পিএইচপি-র সাথে একচেটিয়া কিছু নয়। যদিও আমি বিশদটি জানি না।
অ্যাড্রিয়ানো ভারোলি পিয়াজা

উত্তর:


205

এই তালিকাটি তৈরি করতে আমি 2 উত্স ব্যবহার করেছি। স্কারলেট এবং আরএটিএস- এ একটি স্টাডি । আমি নিজের কিছু মিশ্রণেও যুক্ত করেছি এবং এই থ্রেডের লোকেরা সহায়তা করেছে।

সম্পাদনা করুন: এই তালিকাটি পোস্ট করার পরে আমি আরআইপিএসের প্রতিষ্ঠাতার সাথে যোগাযোগ করেছি এবং এখন পর্যন্ত এই সরঞ্জামগুলি এই তালিকার প্রতিটি ফাংশন ব্যবহারের জন্য পিএইচপি কোড অনুসন্ধান করে।

এই ফাংশন কলগুলির বেশিরভাগ সিঙ্ক হিসাবে শ্রেণিবদ্ধ করা হয়। যখন একটি কলঙ্কযুক্ত ভেরিয়েবল ($ _REQUEST এর মতো) একটি সিঙ্ক ফাংশনে পাস করা হয়, তখন আপনার দুর্বলতা থাকে। মত প্রোগ্রাম ইঁদুর এবং rips একটি অ্যাপ্লিকেশন সমস্ত কুন্ড শনাক্ত করতে কার্যকারিতা মত, grep ব্যবহার করুন। এর অর্থ হ'ল এই ফাংশনগুলি ব্যবহার করার সময় প্রোগ্রামারদের অতিরিক্ত যত্ন নেওয়া উচিত, তবে যদি তারা সেখানে নিষিদ্ধ হয় তবে আপনি বেশি কিছু করতে পারবেন না।

" মহান শক্তি মহান দায়িত্ব আসে। "

- স্ট্যান লি

কমান্ড এক্সিকিউশন

exec           - Returns last line of commands output
passthru       - Passes commands output directly to the browser
system         - Passes commands output directly to the browser and returns last line
shell_exec     - Returns commands output
`` (backticks) - Same as shell_exec()
popen          - Opens read or write pipe to process of a command
proc_open      - Similar to popen() but greater degree of control
pcntl_exec     - Executes a program

পিএইচপি কোড এক্সিকিউশন

evalপিএইচপি কোড কার্যকর করার অন্যান্য উপায় ছাড়াও : include/ স্থানীয় ফাইল অন্তর্ভুক্ত এবং রিমোট ফাইল অন্তর্ভুক্ত দুর্বলতার requireআকারে রিমোট কোড প্রয়োগের জন্য ব্যবহার করা যেতে পারে ।

eval()
assert()  - identical to eval()
preg_replace('/.*/e',...) - /e does an eval() on the match
create_function()
include()
include_once()
require()
require_once()
$_GET['func_name']($_GET['argument']);
$func = new ReflectionFunction($_GET['func_name']); $func->invoke(); or $func->invokeArgs(array());

কলব্যাক গ্রহণ করে এমন ক্রিয়াকলাপগুলির তালিকা

এই ফাংশনগুলি একটি স্ট্রিং প্যারামিটার গ্রহণ করে যা আক্রমণকারীর পছন্দের কোনও ফাংশনটি কল করতে ব্যবহৃত হতে পারে। ফাংশনটির উপর নির্ভর করে আক্রমণকারী প্যারামিটারটি পাস করার ক্ষমতা থাকতে পারে বা নাও করতে পারে। সেক্ষেত্রে একটি Information Disclosureফাংশন phpinfo()ব্যবহার করা যেতে পারে।

Function                     => Position of callback arguments
'ob_start'                   =>  0,
'array_diff_uassoc'          => -1,
'array_diff_ukey'            => -1,
'array_filter'               =>  1,
'array_intersect_uassoc'     => -1,
'array_intersect_ukey'       => -1,
'array_map'                  =>  0,
'array_reduce'               =>  1,
'array_udiff_assoc'          => -1,
'array_udiff_uassoc'         => array(-1, -2),
'array_udiff'                => -1,
'array_uintersect_assoc'     => -1,
'array_uintersect_uassoc'    => array(-1, -2),
'array_uintersect'           => -1,
'array_walk_recursive'       =>  1,
'array_walk'                 =>  1,
'assert_options'             =>  1,
'uasort'                     =>  1,
'uksort'                     =>  1,
'usort'                      =>  1,
'preg_replace_callback'      =>  1,
'spl_autoload_register'      =>  0,
'iterator_apply'             =>  1,
'call_user_func'             =>  0,
'call_user_func_array'       =>  0,
'register_shutdown_function' =>  0,
'register_tick_function'     =>  0,
'set_error_handler'          =>  0,
'set_exception_handler'      =>  0,
'session_set_save_handler'   => array(0, 1, 2, 3, 4, 5),
'sqlite_create_aggregate'    => array(2, 3),
'sqlite_create_function'     =>  2,

তথ্য প্রকাশ

এই ফাংশন কলগুলির বেশিরভাগই ডুবে থাকে না। তবে পরিবর্তে এটি কোনও দুর্বলতা যদি ফিরিয়ে দেওয়া ডেটাগুলির কোনও আক্রমণকারীর কাছে দৃশ্যমান হয়। কোনও আক্রমণকারী যদি দেখতে phpinfo()পান তবে এটি অবশ্যই একটি দুর্বলতা।

phpinfo
posix_mkfifo
posix_getlogin
posix_ttyname
getenv
get_current_user
proc_get_status
get_cfg_var
disk_free_space
disk_total_space
diskfreespace
getcwd
getlastmo
getmygid
getmyinode
getmypid
getmyuid

অন্যান্য

extract - Opens the door for register_globals attacks (see study in scarlet).
parse_str -  works like extract if only one argument is given.  
putenv
ini_set
mail - has CRLF injection in the 3rd parameter, opens the door for spam. 
header - on old systems CRLF injection could be used for xss or other purposes, now it is still a problem if they do a header("location: ..."); and they do not die();. The script keeps executing after a call to header(), and will still print output normally. This is nasty if you are trying to protect an administrative area. 
proc_nice
proc_terminate
proc_close
pfsockopen
fsockopen
apache_child_terminate
posix_kill
posix_mkfifo
posix_setpgid
posix_setsid
posix_setuid

ফাইল সিস্টেমের কার্যাদি

আরএটিএস অনুসারে পিএইচপি-তে সমস্ত ফাইল-সিস্টেম ফাংশন অদ্ভুত। এর মধ্যে কিছু আক্রমণকারীকে খুব কার্যকর বলে মনে হচ্ছে না। অন্যরা আপনার ভাবার চেয়ে বেশি কার্যকর। উদাহরণস্বরূপ যদি allow_url_fopen=Onতখন কোনও ইউআরএল একটি ফাইল পাথ হিসাবে ব্যবহার করা যায়, সুতরাং কলটি copy($_GET['s'], $_GET['d']);সিস্টেমের যে কোনও জায়গায় পিএইচপি স্ক্রিপ্ট আপলোড করতে ব্যবহার করা যেতে পারে। এছাড়াও যদি কোনও সাইট জিইটি এর মাধ্যমে প্রেরণের অনুরোধের পক্ষে ঝুঁকিপূর্ণ হয় তবে সেই ফাইল সিস্টেমের ফাংশনগুলির প্রত্যেককে চ্যানেলটিতে আপত্তিজনকভাবে ব্যবহার করা যেতে পারে এবং আপনার সার্ভারের মাধ্যমে অন্য হোস্টে আক্রমণ করা যেতে পারে।

// open filesystem handler
fopen
tmpfile
bzopen
gzopen
SplFileObject->__construct
// write to filesystem (partially in combination with reading)
chgrp
chmod
chown
copy
file_put_contents
lchgrp
lchown
link
mkdir
move_uploaded_file
rename
rmdir
symlink
tempnam
touch
unlink
imagepng   - 2nd parameter is a path.
imagewbmp  - 2nd parameter is a path. 
image2wbmp - 2nd parameter is a path. 
imagejpeg  - 2nd parameter is a path.
imagexbm   - 2nd parameter is a path.
imagegif   - 2nd parameter is a path.
imagegd    - 2nd parameter is a path.
imagegd2   - 2nd parameter is a path.
iptcembed
ftp_get
ftp_nb_get
// read from filesystem
file_exists
file_get_contents
file
fileatime
filectime
filegroup
fileinode
filemtime
fileowner
fileperms
filesize
filetype
glob
is_dir
is_executable
is_file
is_link
is_readable
is_uploaded_file
is_writable
is_writeable
linkinfo
lstat
parse_ini_file
pathinfo
readfile
readlink
realpath
stat
gzfile
readgzfile
getimagesize
imagecreatefromgif
imagecreatefromjpeg
imagecreatefrompng
imagecreatefromwbmp
imagecreatefromxbm
imagecreatefromxpm
ftp_put
ftp_nb_put
exif_read_data
read_exif_data
exif_thumbnail
exif_imagetype
hash_file
hash_hmac_file
hash_update_file
md5_file
sha1_file
highlight_file
show_source
php_strip_whitespace
get_meta_tags

37
@ কিউনিক আসলে পিএইচপি এবং অন্যান্য ওয়েব অ্যাপ্লিকেশন ভাষার মধ্যে কোনও প্রশংসনীয় পার্থক্য আমি দেখতে পাই না। দিনের শেষে প্রোগ্রামারদের eval()কোড করার ক্ষমতা , সিস্টেম কমান্ড কার্যকর করতে, একটি ডাটাবেস অ্যাক্সেস করতে এবং ফাইলগুলিতে পড়া / লেখার দক্ষতা প্রয়োজন । এই কোডটি আক্রমণকারী দ্বারা প্রভাবিত হতে পারে এবং এটি একটি দুর্বলতা।
রোক

8
এত গুলো ফাংশন নিষিদ্ধ! আপনি কি কোনও সুযোগে আমার ওয়েবসাইটের হোস্ট?
দেব র্যান্ডি করুন

2
@ অ্যান্ড্রু ডান হা, না যদি আপনি এই সমস্ত ফাংশন নিষিদ্ধ করেন তবে কোনও পিএইচপি অ্যাপ্লিকেশন কাজ করবে না। বিশেষত (), প্রয়োজনীয় () এবং ফাইল সিস্টেমের কার্যাদি অন্তর্ভুক্ত করুন।
দাড়কাক

2
@ রুক: আমার চিন্তাধারা হুবহু তবে এগুলি সম্ভাব্য সমস্যার জন্য, নির্দিষ্ট কোনও নয়। যদি সঠিকভাবে ব্যবহার করা হয় তবে এগুলির কোনওটিই তাত্ক্ষণিক হুমকি হিসাবে উপস্থিত নয়; তবে যদি এড়ানো যায় তবে তাদের উচিত।
Geekster

3
ইমো preg_matchসহ eকোনও ক্ষতি হয় না। ম্যানুয়াল বলছে "" কেবল পূর্ববর্তী স্থান () এই সংশোধক ব্যবহার করে; এটি অন্যান্য পিসিআরই ফাংশন দ্বারা উপেক্ষা করা হয়।
নিকিসি

59

আপনাকে ($ tmp) অন্তর্ভুক্ত করার জন্য স্ক্যান করতে হবে এবং এটির জন্য (HTTP_REFERER) এবং * _ও একবার প্রয়োজন। যদি কোনও এক্সপ্লিট স্ক্রিপ্ট কোনও অস্থায়ী ফাইলে লিখতে পারে তবে এটি পরে তা অন্তর্ভুক্ত করতে পারে। মূলত একটি দ্বি-পদক্ষেপ al

এমনকি ওয়ার্কআরউন্ডের সাথে দূরবর্তী কোডটি লুকানো এমনকি সম্ভব:

 include("data:text/plain;base64,$_GET[code]");

এছাড়াও, যদি আপনার ওয়েবসভারটি ইতিমধ্যে আপোস করা হয়ে থাকে তবে আপনি সর্বদা বিন্যাসবিহীন মন্দ দেখতে পাবেন না। প্রায়শই শোষণ শেলটি জিজিপ-এনকোড হয়। চিন্তা করুন include("zlib:script2.png.gz");কোন Eval এখানে একই প্রভাব, এখনও।


1
পিএইচপি কীভাবে কনফিগার করা হয়েছে তার উপর নির্ভর করে অন্তর্ভুক্তটি আসলে স্বেচ্ছাচারিত URL থেকে কোড অন্তর্ভুক্ত করতে পারে। এর মতো কিছুতে " উদাহরণ . com/code.phps " অন্তর্ভুক্ত রয়েছে ; আমি একটি সমঝোতা ওয়েবসাইট দেখেছি যা সেই বৈশিষ্ট্য এবং নিবন্ধ__গ্লোবালগুলির সংমিশ্রণে ভেঙে গেছে।
ব্ল্যাকআউরা

@ ব্ল্যাকআউরা কীভাবে রেজিস্টার_গ্লোবালরা আক্রমণে খাপ খায়? এটি কি এমন কিছু যা $_GET[xyz]বিরোধী হিসাবে ব্যবহার করে কেবল সহজেই টানতে পারত $xyz? নাকি এর আরও গভীর কিছু ছিল?
টাইলার

কেন এটি এইভাবে করা হয়েছিল তা সম্পর্কে আমি নিশ্চিত নই, তবে ওয়েবসাইটটি এভাবে কাজ করে চলেছে: অন্তর্ভুক্ত করুন (f উপসর্গ '/ ফাইল ফাইল.এইচপি'); আমি মনে করি ধারণাটি ছিল আপনি কনফিগার ফাইলে $ উপসর্গ ভেরিয়েবলটি সেট করে মূল কোডটি ওয়েবের মূলের বাইরে নিয়ে যেতে পারেন। যদি আক্রমণকারী সেই মানটিকে " উদাহরণ . com/code.phps ?" এর মতো কিছুতে সেট করে , তবে পিএইচপি পরিবর্তে সেই দূরবর্তী ফাইলটি অন্তর্ভুক্ত করবে। কাছেই আমি বলতে পারি, একটি 'বট আসলে জেনেরিক শোষণ ব্যবহার করে ব্রেক করতে সক্ষম হয়েছিল। স্পষ্টতই, অনেক পুরানো পিএইচপি কোড সেই ভুল করেছে। মূলত, কখনও কোনও ব্যবহারকারী-জমা দেওয়া মান একটি বিবৃতি অন্তর্ভুক্ত নিকটবর্তী যেকোন জায়গায় যাক।
ব্ল্যাকআউরা

আমি মনে করি আপনি এটিকে সাধারণকরণ করতে পারবেন যাতে এতে ফাইলনামে ":" অন্তর্ভুক্ত থাকে ... ফাইল নামটি একটি পরিবর্তনশীল হতে পারে, এটির grepজন্য এটি কঠিন করে তোলে । পিএইচপি - কি বিপর্যয়।
টাইলারল

2
includeপ্রথম বন্ধনী প্রয়োজন হয় না; include "…"আল্লাহই যথেষ্ট।
গম্বো

48

এটি প্রতি সেউ উত্তর নয়, তবে এখানে আকর্ষণীয় কিছু রয়েছে:

$y = str_replace('z', 'e', 'zxzc');
$y("malicious code");

একই আত্মায়, call_user_func_array()অস্পষ্ট ফাংশনগুলি কার্যকর করতে ব্যবহার করা যেতে পারে।


1
কোডটি কার্যকর না করে এটি খুঁজে পাওয়ার কোনও উপায় নেই :( স্থির বিশ্লেষণ এখানে সহায়তা করবে না
NikiC

15
@tylerl: ... বা অন্য কোন ভাষা?
ডাঃ হ্যানিবাল লেেক্টর

@ ডিআর হানিবাল লেক্টর: এমনকি সংকলিত ভাষাও?
পোনকডুডল

3
@ ওয়ালাকোলু: একটি বাইনারি-র জন্য গ্রেপ করার জন্য কোনও সহজ পাঠ্য স্ট্রিং নেই বলে একটি সংকলিত ভাষা সিজিআই ব্যাকডোরকে আড়াল করা আরও সহজ।
আইরিডইন

2
সুন্দর .. আমি চেষ্টা করেছি $ f = 'ev'। 'আল' দিয়ে; $ চ ($: _ পোস্ট [ 'গ']); তবে 'ইভাল' কোনও কাজ নয় বলে একটি বিশেষ নির্মাণ যেমন অন্তর্ভুক্ত, প্রতিধ্বনি ইত্যাদির কাজ নয় -> আকর্ষণীয় যে এক্সিকিউটিভ () নয় এবং এটি কাজ করবে ..
redSadow

20

আমি অবাক হয়েছি যে কারও উল্লেখ করা হয়নি echoএবং printসুরক্ষা শোষণের পয়েন্ট হিসাবে।

ক্রস-সাইট স্ক্রিপ্টিং (এক্সএসএস) একটি গুরুতর সুরক্ষা শোষণ, কারণ এটি সার্ভার-সাইড কোড এক্সিকিউশন শোষণের চেয়ে আরও সাধারণ।


এটি কোনও ভেক্টর হবে যা ক্লায়েন্টকে প্রভাবিত করে, সার্ভারকে নয়, প্রযুক্তিগতভাবে।
দামিয়ানব

@ দামিয়ানব: যদি কোনও সাইট অ্যাজাক্স ব্যবহার করে এবং যেকোন ব্যবহারকারীর সেশনে আমি নির্বিচারে জাভাস্ক্রিপ্ট মূল্যায়ন করতে পারি, তবে আমি সার্ভারে প্রচুর দুষ্টুমির কারণ হতে পারি।
বিল কারভিন

"সার্ভারে" .... ক্লায়েন্টদের সাথে সংযুক্ত; এটি সার্ভারের ব্যাকএন্ডকে প্রভাবিত করে না। এটি ক্লায়েন্ট-পার্শ্বের শোষণগুলির মধ্যে পড়ে যেমন কার্সারজ্যাকিং, সিএসআরএফ, শিরোনামের ইনজেকশন ইত্যাদি on এটি বিপজ্জনক, হ্যাঁ, তবে এটি পুরোপুরি একটি পৃথক শ্রেণিবিন্যাসের আওতায় পড়ে।
দামিয়ানব

19

আমি বিশেষত এই তালিকায় আনসিয়েরালাইজ () যুক্ত করতে চাই। এটি স্বেচ্ছাসেবামূলক কোড কার্যকরকরণ, পরিষেবা অস্বীকার এবং মেমরির তথ্য ফাঁস সহ বিভিন্ন দুর্বলতার দীর্ঘ ইতিহাস ધરાવે છે। এটি কখনই ব্যবহারকারীর সরবরাহিত ডেটাতে কল করা উচিত নয়। এই শিশিরগুলির অনেকগুলি গত শিশির বছরগুলিতে রিলিজে স্থির করা হয়েছিল তবে এটি লেখার বর্তমান সময়ে বেশ কয়েকটি দুষ্টু বাদাম ধরে রেখেছে।

কঠোর পিএইচপি ফাংশন / ব্যবহার সম্পর্কিত অন্যান্য তথ্যের জন্য কঠোর পিএইচপি প্রকল্প এবং এর পরামর্শগুলির চারপাশে । এছাড়াও পিএইচপি সুরক্ষা সাম্প্রতিক মাস এবং পিএইচপি বাগ প্রকল্পগুলির 2007 সালের মাস

আরও মনে রাখবেন যে, ডিজাইন দ্বারা, কোনও অবজেক্টকে আনসিরিয়ালাইজ করার ফলে কনস্ট্রাক্টর এবং ডেস্ট্রাক্টর ফাংশনগুলি কার্যকর হবে; ব্যবহারকারীর সরবরাহিত ডেটাতে এটি কল না করার আরেকটি কারণ।


আমি আনসরিয়ালাইজড ইস্যু সম্পর্কে আরও শুনতে আগ্রহী। এটি কি বাস্তবায়নের ক্ষেত্রে একটি বাগ, বা এটি ডিজাইনের কোনও ত্রুটি (যেমন স্থির করা যায় না)? আপনি কি বিশেষত আমাকে এই সমস্যা সম্পর্কে আরও তথ্যের দিকে নির্দেশ করতে পারেন?
টাইলার

স্বেচ্ছাসেবীর কোড কার্যকরকরণ এবং মেমরির তথ্য ফাঁসের জন্য
2010/

সাম্প্রতিক 5.2.14 রিলিজটি unserialize () cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2010-2225 php.net/ChangeLog-5.php#5.2 এ
চেকিসফ্ট

17

আমার ভিপিএস নিম্নলিখিত ফাংশনগুলি অক্ষম করতে সেট করেছে:

root@vps [~]# grep disable_functions /usr/local/lib/php.ini
disable_functions = dl, exec, shell_exec, system, passthru, popen, pclose, proc_open, proc_nice, proc_terminate, proc_get_status, proc_close, pfsockopen, leak, apache_child_terminate, posix_kill, posix_mkfifo, posix_setpgid, posix_setsid, posix_setuid

পিএইচপি-তে যথেষ্ট সম্ভাব্য ধ্বংসাত্মক ফাংশন রয়েছে যার জন্য গ্রেপ করা আপনার তালিকা খুব বড় হতে পারে। উদাহরণস্বরূপ, পিএইচপিতে chmod এবং chown রয়েছে, যা কোনও ওয়েবসাইটকে নিষ্ক্রিয় করতে ব্যবহার করা যেতে পারে।

সম্পাদনা: সম্ভবত আপনি বাশ স্ক্রিপ্টটি তৈরি করতে চাইতে পারেন যা বিপদ দ্বারা দলবদ্ধ ফাংশনগুলির একটি অ্যারের জন্য একটি ফাইল অনুসন্ধান করে (যে ফাংশনগুলি খারাপ, যে ফাংশনগুলি আরও খারাপ, যে ফাংশনগুলি কখনই ব্যবহার করা উচিত নয়) এবং তারপরে বিপদের আপেক্ষিকতা গণনা করে ফাইলটি শতাংশের মধ্যে চাপিয়ে দেয়। তারপরে ডিরেক্টরিটির একটি ট্রিতে প্রতিটি ফাইলের পাশের ট্যাগযুক্ত শতাংশের সাথে এটি আউটপুট দিন, যদি 30% বিপদ বলে।


আপনি সংকলনের সময় "- অক্ষম-পোজিক্স" পতাকাটি সেট করতে এবং নিষ্ক্রিয়করণের কাজ থেকে সমস্ত পিক্সিক ফাংশন সরিয়ে নিতে পারেন।
পিক্সেল বিকাশকারী

15

"বাধা দুর্বলতা" শ্রেণীর বিষয়ে সচেতন হন যা স্বেচ্ছাসেবী মেমরির অবস্থানগুলি পড়তে এবং লেখার অনুমতি দেয়!

এগুলি ট্রিম (), rtrim (), ltrim (), বিস্ফোরিত (), strchr (), স্টারস্টার (), substr (), অংশ_স্প্লিট (), strtok (), addcslahes (), str_repeat () এবং আরও অনেক কিছু হিসাবে ফাংশন প্রভাবিত করে । এটি মূলত, তবে একচেটিয়াভাবে নয়, ভাষার কল-টাইম পাস-বাই-রেফারেন্স বৈশিষ্ট্যের কারণে যা 10 বছর ধরে অবনমিত হয়েছে তবে অক্ষম নয়।

আরও তথ্যের জন্য, ব্ল্যাকহ্যাট ইউএসএ ২০০৯ স্লাইডস পেপারে বাধা বিপত্তি এবং অন্যান্য নিম্ন-স্তরের পিএইচপি সমস্যাগুলি সম্পর্কে স্টিফান এসারের আলাপ দেখুন

এই কাগজ / উপস্থাপনাটিও দেখায় যে কীভাবে ডিএল () স্বেচ্ছাসেবী সিস্টেম কোড কার্যকর করতে ব্যবহৃত হতে পারে।


1
সেকি। ঠিক আছে, আমি সত্যিই ভেবেছিলাম যে পিএইচপি এই স্লাইডগুলির দিকে নজর দেওয়ার আগে কিছুটা সুরক্ষিত ছিল ...
নিকিসি

14

প্লাটফর্ম-নির্দিষ্ট, তবে তাত্ত্বিক এক্সিকিউট ভেক্টরগুলি:

  • dotnet_load ()
  • নতুন COM ("WScript.Shell")
  • নতুন জাভা ("java.lang.Runtime")
  • ইভেন্ট_ নতুন () - খুব শেষ পর্যন্ত

এবং আরও অনেক ছদ্মবেশী পদ্ধতি রয়েছে:

  • প্রোপ_পেন পপেনের জন্য একটি উপনাম
  • কল_উজার_ফানক_আরে ("এক্সইইইই"। সিএইচআর (99), অ্যারে ("/ ইউএসআর / বিন / ক্ষতি", "- সমস্ত"));
  • ফাইল_পুট_কন্টেন্টস ("/ সিজি-বিন / নেক্সটিনভোকেশন.সি.পি") && chmod (...)
  • ফারডাটা :: সেটডফল্টস্টাব - .phar ফাইলগুলিতে কোড পরীক্ষা করার জন্য আরও কিছু কাজ
  • রানকিট_ফাংশন_নাম ("এক্সিকিউট", "নির্দোষ_নাম") বা এপিডি পুনর্নবীকরণ_কাজ

সেই দ্বিতীয় তালিকায় কল_ইউজার_ফুনস ()
চিকিসফট

1
একটি উত্তর যথেষ্ট;) আপনার এটি কেবল আপনার আগের উত্তরটিতে যুক্ত করা উচিত।
জাস্টিন জনসন

13

evalভাষা নির্মাণ ছাড়াও আরও একটি ফাংশন রয়েছে যা নির্বিচারে কোড প্রয়োগের অনুমতি দেয়:assert

assert('ex' . 'ec("kill --bill")');

10

আকর্ষণীয় শোষণের একটি উত্স উল্লেখ করা হয়নি। পিএইচপি 0x00তাদের স্ট্রিংগুলিতে বাইট রাখার অনুমতি দেয় । অন্তর্নিহিত (libc) ফাংশন এটিকে একটি স্ট্রিংয়ের শেষে হিসাবে বিবেচনা করে।

এটি পিএইচপি-তে স্যানিটি-চেকিং বোকা বানানো যেতে পারে এমন পরিস্থিতিতে যেমন দুরকম পরিস্থিতিতে যেমন:

/// note: proof of principle code, don't use
$include = $_GET['file'];
if ( preg_match("/\\.php$/",$include) ) include($include);

এর মধ্যে যে কোনও ফাইল অন্তর্ভুক্ত থাকতে পারে - কেবল শেষ হওয়াগুলি নয় .php- কল করেscript.php?file=somefile%00.php

সুতরাং পিএইচপি-র স্ট্রিং দৈর্ঘ্য মানবে না এমন কোনও ফাংশন কিছুটা দুর্বলতার দিকে নিয়ে যেতে পারে।


নালস সহ ফাইল পাথগুলিকে আর 5.4 এবং সর্বশেষ 5.3 সংস্করণে অনুমতি দেওয়া হবে না।
StasM

@stasM কিছুক্ষণের মধ্যে পিএইচপি সম্পর্কে শুনেছি এটি অন্যতম সেরা বিষয়। ভাগ করে নেওয়ার জন্য ধন্যবাদ.
উইলিয়াম

9

বিপজ্জনক সিনট্যাকটিক উপাদান সম্পর্কে কী?

" ভেরিয়েবল ভেরিয়েবল " ( $$var) বর্তমান স্কোপে $ var নামে একটি ভেরিয়েবল সন্ধান করবে। যদি ভুল ব্যবহার করা হয় তবে দূরবর্তী ব্যবহারকারীর বর্তমান সুযোগে যে কোনও ভেরিয়েবল পরিবর্তন বা পড়তে পারে। মূলত দুর্বল eval

উদাহরণস্বরূপ: আপনি কিছু কোড লেখেন $$uservar = 1;, তারপরে রিমোট ব্যবহারকারী $uservar"অ্যাডমিন" এ সেট করে, যার ফলে বর্তমান সুযোগে $adminসেট করা 1আছে।


আমি কী বলতে চাইছি তা দেখছি তবে এটি অন্যরকম শোষণের মতো দেখাচ্ছে। এই পদ্ধতির মাধ্যমে আপনি উপরোক্ত কোনও পিএইচপি কোড কার্যকর করতে পারেন এমন কোনও উপায় আছে (উপরের কোনও ফাংশন ব্যবহার না করে)? অথবা কেবলমাত্র ভেরিয়েবলের বিষয়বস্তু পরিবর্তনের জন্য এটি ব্যবহার করা যেতে পারে? যদি আমি কিছু মিস করছি তবে আমি এটি সঠিকভাবে পেতে চাই।
টাইলারেল

6
আপনি পরিবর্তনশীল ফাংশনও ব্যবহার করতে পারেন যা স্ক্রিপ্ট মূল্যায়ন না করে কাজ করা অসম্ভব। উদাহরণস্বরূপ: $innocentFunc = 'exec'; $innocentFunc('activate skynet');
এরিস্কো

প্রতিবিম্ব জন্য সন্ধান করুন।
এরিস্কো

6

আমি অনুমান করি যে আপনি আপনার উত্স ফাইলগুলি বিশ্লেষণ করে সত্যই সম্ভাব্য সবগুলি সন্ধান করতে পারবেন না।

  • এছাড়াও যদি এখানে সত্যিই দুর্দান্ত তালিকাগুলি সরবরাহ করা থাকে তবে আপনি কোনও ফাংশন মিস করতে পারেন যা শোষণযোগ্য হতে পারে

  • এখনও এই মত "লুকানো" খারাপ কোড থাকতে পারে

; myEvilRegex = base64_decode ('Ly4qL2U =');

প্রিগ_রেপ্লেস ($ myEvilRegex, $ _POST ['কোড']);

  • আপনি এখন বলতে পারেন, আমি এটির সাথে মেলে আমার স্ক্রিপ্টটিও প্রসারিত করি

  • তবে তারপরে আপনার কাছে সেই মেইন "সম্ভবত দুষ্ট কোড" থাকবে যা অতিরিক্তভাবে এর প্রসঙ্গের বাইরে

  • যাতে (সিউডো-) সুরক্ষিত থাকতে আপনার সত্যই ভাল কোড লেখা উচিত এবং বিদ্যমান সমস্ত কোড নিজেই পড়া উচিত yourself


আমি ওয়ার্ডপ্রেস-ভিত্তিক ম্যালওয়ারে ঘন ঘন খারাপের জন্য বেস 64_ ডিকোড () ব্যবহার করেছি। তালিকায় ভাল সংযোজন।
ক্রিস অ্যালেন লেন


5

আমি জানি move_uploaded_fileযে উল্লেখ করা হয়েছে, তবে সাধারণভাবে ফাইল আপলোড করা খুব বিপজ্জনক। শুধু উপস্থিতি $_FILESকিছু উদ্বেগ উত্থাপন করা উচিত।

যে কোনও ফাইলের মধ্যে পিএইচপি কোড এম্বেড করা বেশ সম্ভব quite চিত্রগুলি পাঠ্যের মন্তব্যে বিশেষত দুর্বল হতে পারে। কোডটি যদি $_FILESডেটা-তে থাকা এক্সটেনশনটিকে যেমন হয় তেমন গ্রহণ করে তবে সমস্যাটি বিশেষ করে সমস্যাযুক্ত ।

উদাহরণস্বরূপ, কোনও ব্যবহারকারী "foo.php" এমবেডেড পিএইচপি কোড সহ একটি বৈধ পিএনজি ফাইল আপলোড করতে পারে। স্ক্রিপ্টটি যদি বিশেষভাবে নির্লজ্জ হয় তবে এটি ফাইলটিকে আসলে "/uploads/foo.php" হিসাবে অনুলিপি করতে পারে। যদি সার্ভারটি ব্যবহারকারী আপলোড ডিরেক্টরিগুলিতে স্ক্রিপ্ট প্রয়োগের অনুমতি দেওয়ার জন্য কনফিগার করা থাকে (প্রায়শই কেস হয় এবং একটি ভয়ঙ্কর নজরদারি) তবে আপনি তাত্ক্ষণিকভাবে যেকোন নির্বিচার পিএইচপি কোড চালাতে পারবেন। (চিত্রটি .png হিসাবে সংরক্ষণ করা হলেও, অন্যান্য সুরক্ষা ত্রুটির মাধ্যমে কোডটি কার্যকর করা সম্ভব হতে পারে))

আপলোডগুলিতে চেক করার জন্য একটি (অ-অবসন্ন) জিনিসের তালিকা:

  • আপলোডটি যে ধরণের দাবি করেছে তা নিশ্চিত করার জন্য সামগ্রীগুলি বিশ্লেষণ করে নিশ্চিত করুন
  • পরিচিত, নিরাপদ ফাইল এক্সটেনশান সহ ফাইলটি সংরক্ষণ করুন যা কখনই কার্যকর করা হবে না
  • নিশ্চিত করুন যে পিএইচপি (এবং অন্য কোনও কোড এক্সিকিউশন) ব্যবহারকারী আপলোড ডিরেক্টরিগুলিতে অক্ষম রয়েছে

5

আসুন pcntl_signalএবং pcntl_alarmতালিকা যোগ করুন ।

এই ফাংশনগুলির সাহায্যে আপনি php.ini বা স্ক্রিপ্টে যে কোনও সেট_টাইম_মিলিট সীমাবদ্ধতা তৈরি করতে কাজ করতে পারেন।

এই স্ক্রিপ্ট উদাহরণস্বরূপ সত্ত্বেও 10 সেকেন্ড চলবে run set_time_limit(1);

(ক্রেডিট সেবাস্তিয়ান বার্গম্যানস টুইট এবং টোকা জানায় :

<?php
declare(ticks = 1);

set_time_limit(1);

function foo() {
    for (;;) {}
}

class Invoker_TimeoutException extends RuntimeException {}

class Invoker
{
    public function invoke($callable, $timeout)
    {
        pcntl_signal(SIGALRM, function() { throw new Invoker_TimeoutException; }, TRUE);
        pcntl_alarm($timeout);
        call_user_func($callable);
    }
}

try {
    $invoker = new Invoker;
    $invoker->invoke('foo', 1);
} catch (Exception $e) {
    sleep(10);
    echo "Still running despite of the timelimit";
}

4

পিএইচপি শোষণের প্রচুর পরিমাণ রয়েছে যা PHP.ini ফাইলে সেটিংস দ্বারা অক্ষম করা যেতে পারে। স্পষ্ট উদাহরণ হ'ল রেজিস্টার_গ্লোবালস, তবে সেটিংসের উপর নির্ভর করে এইচটিটিপি এর মাধ্যমে দূরবর্তী মেশিনগুলি থেকে ফাইলগুলি অন্তর্ভুক্ত করা বা খুলতেও সম্ভব হতে পারে, যদি কোনও প্রোগ্রাম এর অন্তর্ভুক্ত () বা ফাইল হ্যান্ডলিং ফাংশনগুলির জন্য ভেরিয়েবল ফাইল নাম ব্যবহার করে তবে তা কাজে লাগানো যেতে পারে।

পিএইচপি এছাড়াও একটি চলক নামের শেষে () যুক্ত করে ভেরিয়েবল ফাংশন কলিংয়ের অনুমতি দেয় - যেমন $myvariable();ভেরিয়েবল দ্বারা নির্দিষ্ট ফাংশনটির নাম কল করবে। এটি শোষণজনক; উদাহরণস্বরূপ, যদি কোনও আক্রমণকারী 'ইওয়াল' শব্দটি ধারণ করে চলকটি পেতে পারে এবং প্যারামিটারটি নিয়ন্ত্রণ করতে পারে, তবে প্রোগ্রামটিতে বাস্তবে ইওল () ফাংশন না থাকলেও সে যা খুশি তাই করতে পারে।


4

এই ফাংশনগুলি কিছু বাজে প্রভাব ফেলতে পারে।

  • str_repeat()
  • unserialize()
  • register_tick_function()
  • register_shutdown_function()

প্রথম দুটি উপলব্ধ উপলভ্য সমস্ত স্মৃতি নিঃশেষ করতে পারে এবং শেষের ক্লান্তিটি অব্যাহত রাখে ...


2

সিকিউরিটি.স্ট্যাকেক্সচেঞ্জ.কম এ সম্প্রতি এ নিয়ে কিছু আলোচনা হয়েছিল

ক্রিয়াকলাপগুলি যথেচ্ছ কোড প্রয়োগের জন্য ব্যবহার করা যেতে পারে

আচ্ছা, সুযোগটি কিছুটা হ্রাস করে - তবে যেহেতু 'মুদ্রণ' জাভাস্ক্রিপ্ট ইনজেক্ট করতে ব্যবহার করা যেতে পারে (এবং সেজন্য সেশনগুলি চুরি করে) এটি এখনও কিছুটা নির্বিচারে।

কালো তালিকাভুক্ত করা উচিত বা অন্যথায় অনুমোদিত নয় এমন ফাংশনগুলির তালিকা নয়। বরং, আমি একটি গ্রেপ-সক্ষম তালিকা পেতে চাই

এটি একটি বুদ্ধিমান পন্থা।

আপনার নিজের পার্সার লেখার কথা বিবেচনা করবেন না - খুব শীঘ্রই আপনি নিয়ন্ত্রণের বাইরে চলে যাওয়ার একটি গ্রেপ ভিত্তিক পদ্ধতির সন্ধান করতে যাচ্ছেন (অ্যাডকে কিছুটা আরও ভাল হবে)। খুব শীঘ্রই আপনি শুভেচ্ছার তালিকাগুলিও বাস্তবায়িত করতে চান এমন ইচ্ছাও শুরু করতে চলেছেন!

সুস্পষ্ট বিষয়গুলি ছাড়াও, আমি স্ট্রিং আক্ষরিক ব্যতীত অন্য কোনও যুক্তির সাথে অন্তর্ভুক্ত এমন কোনও কিছুকে ফ্ল্যাগ করার পরামর্শ দেব। __Autoload () এর জন্যও নজর রাখুন।


2

আমার আশঙ্কা আমার উত্তরটি কিছুটা নেতিবাচক হতে পারে তবে ...

আইএমএইচও, সেখানে থাকা প্রতিটি একক ক্রিয়াকলাপ এবং পদ্ধতি নিরীহ উদ্দেশ্যে ব্যবহার করা যেতে পারে। এটিকে অবজ্ঞাপূর্ণতার ট্রিকল-ডাউন প্রভাব হিসাবে ভাবুন: কোনও ভেরিয়েবল কোনও ব্যবহারকারী বা দূরবর্তী ইনপুটকে অর্পণ করা হয়, ভেরিয়েবলটি কোনও ফাংশনে ব্যবহৃত হয়, একটি শ্রেণীর সম্পত্তিতে ব্যবহৃত ফাংশন রিটার্ন মান, কোনও ফাইল ফাংশনে ব্যবহৃত শ্রেণীর সম্পত্তি, এবং তাই এগিয়ে। মনে রাখবেন: একটি জাল আইপি ঠিকানা বা একটি ম্যান-ইন-দ্য মিডল আক্রমণ আপনার পুরো ওয়েবসাইটটি কাজে লাগাতে পারে।

আপনার সেরা বাজি কোন সম্ভাব্য ব্যবহারকারী বা দূরবর্তী ইনপুট শেষ শুরু, দিয়ে শুরু থেকে ট্রেস হয় $_SERVER, $_GET, $_POST, $_FILE, $_COOKIE, include(some remote file)( যদি allow_url_fopen চালু থাকে) সব অন্যান্য ফাংশন /, দূরবর্তী ফাইল সঙ্গে তার আচরণ ইত্যাদি আপনি programatically একটি স্ট্যাক-ট্রেস প্রফাইল গড়ে তুলতে শ্রেণীর প্রতিটি ব্যবহারকারীর- বা রিমোট সরবরাহিত মান। এটি নির্ধারিত ভেরিয়েবল এবং এটিতে ব্যবহৃত ফাংশন বা পদ্ধতিগুলির সমস্ত পুনরাবৃত্তি উদাহরণ পেয়ে পুনরায় ক্রমবর্ধমানভাবে functions ফাংশন / পদ্ধতিগুলির সমস্ত উপস্থিতিগুলির একটি তালিকা সংকলন করে এবং এ জাতীয় পদ্ধতিতে করা যেতে পারে। এটি স্পর্শ করে অন্যান্য সমস্ত ফাংশনগুলির সাথে সম্পর্কিত যথাযথ ফিল্টারিং এবং যাচাইকরণ ফাংশনগুলির মধ্য দিয়ে যায় কিনা তা পরীক্ষা করে দেখুন। এটি অবশ্যই একটি ম্যানুয়াল পরীক্ষা, অন্যথায় আপনার মোট সংখ্যা হবেcase পিএইচপিতে ফাংশন এবং পদ্ধতির সংখ্যার সমান স্যুইচ (ব্যবহারকারী সংজ্ঞায়িত সহ)।

বিকল্প হিসাবে কেবলমাত্র ব্যবহারকারী ইনপুট পরিচালনা করার জন্য, সমস্ত স্ক্রিপ্টগুলির শুরুতে একটি স্ট্যাটিক কন্ট্রোলার ক্লাস শুরু করা থাকে যা 1) অনুমোদিত ব্যবহারকারীর একটি সাদা-তালিকার বিরুদ্ধে সমস্ত ব্যবহারকারীর সরবরাহিত ইনপুট মানগুলি বৈধ করে এবং সংরক্ষণ করে; 2) যে ইনপুট উত্স (ie) মুছা $_SERVER = null। আপনি দেখতে পারেন যেখানে এটি সামান্য নাৎসেক পেয়েছে।


হ্যাঁ অবশ্যই, অনেক প্রোগ্রামিং ভাষার মতোই, আপনার মন্দ কাজগুলি আড়াল করার কোনও উপায় নেই। তবে আমি মনে করি যে আমি যা বলছিলাম তার অভিব্যক্তিটি এটি মিস করে। দৃশ্যটি এরকম কিছু: আপনার ওয়েবসাইট হ্যাক হওয়ার পরে আপনাকে সহায়তা করার জন্য ডাকা হবে। আপনি যদি সকালে তার ওয়েবসাইটটি সুরক্ষিত করতে পারেন তবে ক্লায়েন্ট অতিরিক্ত অর্থ প্রদান করবে will সাইটে 475 পিএইচপি ফাইল রয়েছে, এবং দরকারী ফরেনসিক বিশদগুলি ধ্বংস হয়ে গেছে - আপনি একটি বিশাল খড়খড়ি এবং একটি কুখ্যাত ছোট সুই পেয়েছেন ... আপনি কোথায় সন্ধান শুরু করবেন? (সংক্ষেপে আমার দিনের কাজ)
টাইলার

1

সুরক্ষার উদ্দেশ্যে আমার সরবরাহকারীর অক্ষম করা ফাংশনগুলির একটি তালিকা এখানে রয়েছে:

  • Exec
  • DL
  • show_source
  • apache_note
  • apache_setenv
  • closelog
  • debugger_off
  • debugger_on
  • define_syslog_variables
  • escapeshellarg
  • escapeshellcmd
  • ini_restore
  • openlog
  • পাস করা
  • pclose
  • pcntl_exec
  • popen
  • proc_close
  • proc_get_status
  • proc_nice
  • proc_open
  • proc_terminate
  • shell_exec
  • syslog- র
  • পদ্ধতি
  • url_exec

1

কোডের বেশিরভাগ আক্রমণগুলি একাধিক অ্যাক্সেস উত্স বা তাদের সম্পাদন করতে একাধিক পদক্ষেপ ব্যবহার করে। আমি কেবল কোনও কোড বা ম্যালিসিয়াস কোডযুক্ত পদ্ধতির জন্য অনুসন্ধান করব না, তবে সমস্ত পদ্ধতি, এটি সম্পাদন করে বা কল করে ফাংশন করে। সেরা সুরক্ষার মধ্যে এনকোডিং এবং ফর্ম ডেটাটি আসার সাথে সাথে যাচাইকরণও অন্তর্ভুক্ত থাকবে।

সিস্টেমের ভেরিয়েবলগুলি সংজ্ঞায়িত করা থেকেও নজর রাখুন, পরে তাদের কোডের কোনও ফাংশন বা পদ্ধতি থেকে কল করা যেতে পারে।


0

পাঠ্যের ব্যাখ্যা করে এমন 4 বিট অক্ষর ফাংশন ব্যবহার করে বেশ কয়েকটি বাফার ওভারফ্লোগুলি আবিষ্কার করা হয়েছিল। এইচটিএমলেটিনিটিস () এইচটিএমএল স্পেশালচার্স ()

শীর্ষে ছিল, একটি ভাল প্রতিরক্ষা ব্যাখ্যার আগে একক এনকোডিংয়ে রূপান্তর করতে mb_convers_encoding () ব্যবহার করা।


0

সংবেদনশীল সিঙ্কের একটি ক্রমাগত আপডেট হওয়া তালিকা ( শোষণযোগ্য পিএইচপি ফাংশন) এবং তাদের প্যারামিটারগুলি রিপস / কনফিগ / সিংস.পিপি- তে খুঁজে পেতে পারেন, পিএইচপি অ্যাপ্লিকেশনগুলির দুর্বলতার জন্য একটি স্ট্যাটিক সোর্স কোড বিশ্লেষক যা পিএইচপি ব্যাকডোরগুলি সনাক্ত করে।


আরআইপিএস এই পৃষ্ঠা থেকে তালিকাটি ব্যবহার করছে।
রোক
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.