Security Analysis
11.5K subscribers
344 photos
50 videos
36 files
885 links
- Offensive Security (Red Teaming / PenTesting)
- BlueTeam (OperationSec, TreatHunting, DFIR)
- Reverse Engineering / Malware Analysis
- Web Security
- Cryptography
- Steganography
- Forensics
Contact : @DrPwner
Download Telegram
#python #secure_coding #coding #code
اگر با کتابخونه subprocess در پایتون کار کرده باشید حتما قطعه کد مقابل رو دیدید:
import subprocess
print(subprocess.call('echo $HOME', shell=True))


از لحاظ امنیتی این کد مشکل داره؟
جواب: بله!
اما چرا؟ وقتی شما مقدار shell رو برابر با True قرار بدید subprocess شِل رو در اختیار میگیره و به Shell میگه دستور رو اجرا کن (subshell). در واقع یعنی تمامی متغیر های محیطی (Variables) و تمامی ویژگی‌های شل، قبل از اجرای دستور echo $HOME، پردازش میشوند.
یه مثال برای اینکه خودتون به چشم ببینید خروجی رو میتونید اجرا کنید:
>>> import subprocess
>>> subprocess.call('echo $HOME')
Traceback (most recent call last):
...
OSError: [Errno 2] No such file or directory
>>>
>>> subprocess.call('echo $HOME', shell=True)
/user/invoxes

@securation