Баяндама web қосымшалардың қауіпсіздігін қадағалау



бет2/2
Дата13.12.2022
өлшемі24,64 Kb.
#57110
1   2

LFI/RFI


Осы сыныптың осалдықтары браузер арқылы шабуылдаушыларға веб-қосымшадан жауап ретінде серверде жергілікті және Жойылған файлдарды қосуға мүмкіндік береді. Бұл алшақтық шабуылдаушы басқара алатын, path traversal типті таңбаларды енгізе алатын және веб-серверден басқа файлдарды қоса алатын дұрыс кіріс өңдеу болмаған жерде болады.


http://example.com/?search=/../../../../../../etc/passwd




JSON және XML арқылы шабуылдар

JSON немесе XML форматындағы сұрауларды өңдейтін Веб-қосымшалар мен API-лер де шабуылға ұшырайды, өйткені мұндай форматтардың кемшіліктері бар.




JSON (JavaScript Object Notation) — бұл қосымшалар арасындағы байланыс үшін қолданылатын жеңіл деректер алмасу форматы. Бұл XML-ге ұқсас, бірақ JavaScript көмегімен өңдеуге оңай және жақсы. Көптеген веб-қосымшалар бұл форматты деректермен алмасу және деректерді сериялау / десериализациялау үшін пайдаланады. Кейбір веб-қосымшалар JSON -. пайдаланушы деректері сияқты маңызды ақпаратты сақтау үшін пайдаланады. Әдетте RESTful API және AJAX қосымшаларында қолданылады.


JSON көбінесе API-мен байланысты, дегенмен, тіпті қарапайым және танымал веб-қосымшаларда жиі қолданылады. Мысалы, WordPress - те Материалдарды өңдеу JSON форматында сұраныстар жіберу арқылы жүзеге асырылады:


POST /index.php?rest_route=%2Fwp%2Fv2%2Fposts%2F12&_locale=user HTTP/1.1


Host: wordpress.example.com
...
% Басқа тақырыптар%
...

{"id":12,"title":"test title","content":"test body","status":"publish"}


Сервер жағында қарапайым JSON инъекциясын PHP де келесідей жасауға болады:





  • Сервер пайдаланушы деректерін JSON жолы ретінде, соның ішінде тіркелгі түрін сақтайды;




  • Пайдаланушы аты мен құпия сөз тазартусыз тікелей пайдаланушы енгізуінен алынады;




  • JSON жолы қарапайым біріктіру арқылы жасалады: $json_string = '{"account":"user","user":"'.$_GET['user'].'","pass":"'.$_GET[' ass'].'"}'




  • Шабуылдаушы пайдаланушы атына деректерді қосады: john%22,%22account%22:%22administrator%22




  • Алынған JSON жолы:

{
"account":"user",
"user":"john",
"account":"administrator",
"pass":"password"
}
Сақталған жолды оқығанда JSON талдаушысы (json_decode) екі есептік жазбаны анықтайды және John пайдаланушысына әкімші құқығын беру арқылы соңғысын алады.
Клиент жағында қарапайым JSON инъекциясын келесідей жасауға болады:



var result = eval("(" + json_string + ")");


document.getElementById("#account").innerText = result.account;
document.getElementById("#user").innerText = result.name;
document.getElementById("#pass").innerText = result.pass;



  • Account мәні: user"});alert(document.cookie);({"account":"user

Eval функциясы alert орындайды;


Орындау XSS-ке және құжатты алуға әкеледі.cookie.


XML

XXe қолданатын шабуылдаушы үшін басты мәселе-XML тәрізді мазмұны бар мәтіндік файлдарға қалай қол жеткізуге болады (",',<, >сияқты арнайы XML таңбалары бар файлдар). XML-де бұл мәселені шешудің жолы бар. Егер XML файлдарында арнайы XML таңбаларын сақтау қажет болса, оларды XML анализаторы елемейтін CDATA (символдық деректер) тегтеріне қоюға болады:


characters are ok in here ]]>


Енді шабуылдаушы символдық деректерді пайдаланып сұрау жіберуге тырысуы мүмкін. Бірақ бұл жұмыс істемейді, өйткені XML спецификациясы сыртқы нысандарды ішкі нысандармен біріктіруге мүмкіндік бермейді. Сондықтан төмендегі мысал көрсетілгендей жұмыс істемейді.


Сұрау:
POST http://example.com/xml HTTP/1.1






"file:///etc/fstab">
">
]>
&all;
Күтілетін жауап:
HTTP/1.0 200 OK

# /etc/fstab: static file system information.


#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
#
# / was on /dev/sda1 during installation
UUID=1b83709b-6d53-4987-aba9-72e33873cf61 / ext4 errors=remount-ro 0 1
# swap was on /dev/sda5 during installation
UUID=4ffcddd4-6b04-4bff-bd21-bf0dae4e373f none swap sw 0 0
/dev/sr0 /media/cdrom0 udf,iso9660 user,noauto 0 0


Достарыңызбен бөлісу:
1   2




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет