Vi hade bara ett fall där hitta filer script produktionen i / tmp eller / var / tmp eller andra delar av världen skrivbara kataloger, kan skrivas som symlinks av en obehörig användare kan orsaka skada.
Det är inte lätt att exploateras på grund av utdatafilen behöva inte finns, och även att användaren vet vilket namn det blir, men det är möjligt.
t.ex.
Om user1 (normalt användarkonto) skrev en symbolisk länk i / tmp till / etc / passwd
user1 # ln-s / tmp / script.out / etc / passwd
Sedan ett skript kom längs kör som root och skapade produktion eller avlusa eller något till / tmp / script.out då skulle overwrite / etc / passwd och naturligtvis orsaka problem i systemet.
Som sagt användaren skulle behöva veta vad manus skulle vara sprang som root och var produktionen men folk ibland glömmer att chmod 750 ot 700 vissa skript.
Om du därför kontrollera alla utdatafilen jag ska skapa enligt nedan: --
Kod:
output_security()
{
# Check any file to be used is not a symlink elswhere.
# If exceptions are needed dont call this function
# This is an e.g so doesn't include checking $@
for FILE in $@
do
if [ -h ${FILE} ];then
print "ERROR: File [${FILE}] is a sym link and not a regular file" >&2
print "Potential Security Risk so exiting" >&2
exit 2
}
outputfile=/tmp/$(basename $0).out
tmpfile=/tmp/$(basename $0).tmp
output_security "${outputfile} ${tmpfile}"
....blah blah