SlideShare ist ein Scribd-Unternehmen logo
1 von 41
Клиентийн хамгаалалтыг
алгасах
Лекц №4
Бэлтгэсэн Ц.Амарбат (amarbat9@yahoo.com)
http://1234.mn/cd
Мэдээллийн нууцлал хамгаалалт
2
Агуулга
 Вэб сайтыг шинжлэх
 Вэбийг шинжлэгч аалзнууд
 Хэрэглэгчийн удирдлагатай аалз
 Сайтын далд агуулгыг илрүүлэх
 Brute Force аргачлал
 Сайтад мэдээлэл оруулах цэгүүдийг шинжлэх
 Вэб сэрвэрийн технологийг илрүүлэх
 URL-с нь сайтыг шинжлэх
 Сайтын ажиллагааг өөрт нь ашиглах
 Хакерийн дараачийн алхмуудын товч
Клиентийн хамгаалалтыг алгасах
 Маш олон тооны вэб сайтууд хэрэглэгчээс өгөгдөл авахдаа клиент
талд ажиллах компонентуудад найдан, сэрвэр талд шалгалт хийдэггүй
нь том асуудал тарьдаг.
 Клиент талд байгаа компонентууд нь
 JavaScript
 HTML Form
 Java Applet
 ActiveX controls
 Flash controls
 Эдгээрийг бүгд хакерийн компьютер дээр вэб броузер дотор ажиллах
тул хакер эдгээрийг хялбархан аргалж болдог.
3
HTML Form Hidden element
 Дээр үед олонхи вэб HTML-ийн далд элементэд чухал мэдээллүүдийг
хадгалж түүнийгээ ашигладаг байв. Одоо ч ийм сайтууд байсаар л
байна.
 Үүний сонгодог жишээг доор харуулав :
 Код нь :
4
HTML Form Hidden element
 Энэ тохиолдолд хакер уг хуудсыг хадгалж аваад HTML кодыг нь дараах
байдлаар өөрчилсний дараа уг хуудсаа ачаалаад барааг үнэгүй авч болно :
 <input type = “hidden” name=“price” value=“0”>
 Гэхдээ Proxy сэрвэр ашиглах нь илүү уран арга юм. Дээрх формын товчийг
дарвал дараах мэдээлэл сэрвэр рүү дамжигдахыг прокси сэрвэрээр харж
болно :
 Энд бид мөн л price-ийн утгыг прокси сэрвэр дээрээсээ шууд өөрчилж чадна.
 Зөвөлгөө :
 Ийм вэб тааралдвал хасах утга оруулж үзэх хэрэгтэй. Зарим вэб сайтууд үнэхээр хасах утгыг хүлээн
авдаг бөгөөд барааг та худалдан аваад зогсохгүй таны данс руу оруулсан хэмжээгээр чинь мөнгө
оруулах тохиолдол байдаг...
5
HTML Cookie
 Мөн вэбүүд cookie-д өгөгдлөө хадгалж түүнд найдах явдал их байдаг.
Нормал хэрэглэгчид уг cookie-г харахгүй боловч хакерууд мэдээж
прокси сэрвэр ашиглан cookie-үүдийг харж, өөрчилж чадна.
 Жишээ нь хэрэглэгч логин хийсний дараа дараа хариултыг сэрвэрээс
хүлээн авч байгааг прокси сэрвэр харуулж байна:
 Ямар асуудлууд энд байна вэ?
6
HTML Cookie
 Ямар асуудлууд энд байна вэ?
 sessId : Энэ утгыг хакер боловсруулан өөр логин хийсэн хэрэглэгчийн
session-г олж болно.
 UID : Энэ нь магадгүй логин хийсэн хэрэглэгчийн ID байж болох юм.
Үүнийг өөрчилбөл өөртөө өгөгдсөн эрхээс илүү эрх олж авч болох юм
(access control vulnerability)
 DiscountRate : Энэ нь уг хэрэглэгчид үзүүлж буй хямдралын хэмжээ
бололтой. Үүнийг 99 болгосноор барааг үнэгүй авч магадгүй.
7
Referer header
 Ер нь клиентээс сэрвэр рүү дамжигдах ихэнх хүсэлт дотроо referer
толгойг агуулдаг. Энэ толгой нь уг хүсэлт хаанаас (ямар хуудаснаас)
ирж буйг илтгэдэг.
 Зарим вэбүүд энэхүү referer толгойг ашиглан хүсэлт тодорхой
дарааллын дагуу явж буй эсэхийг шалгадаг.
 Жишээ нь хэрэглэгч нууц үгээ солиход дараах хүсэлт илгээгдсэн
байна :
8
Referer header
 Энэ тохиолдолд програмист нь resetForgotPassword.asp скриптийн код
дотор referer толгойг шалган уг хуудсыг зөвхөн ForgotPassword.asp
хуудасны дараа л дуудагдана гэж програмчилж болох юм.
 PHP дээр уг толгойг авахдаа : $_SERVER['HTTP_REFERER‘]
 Хэрэв бид ForgotPassword.asp хуудсаар дамжих сонирхолгүй байвал
(энэ хуудас дээр биднээс төрөл бүрийн зүйл нэхсэн байж болно) яах
вэ?
 Энэ тохиолдолд бид мөн л прокси ашиглан Referer: утгыг өөрчилж хийх
боломжтой.
 resetForgotPassword.asp хуудсыг шууд URL дээр бичин дуудах бөгөөд проксигоор referer
–ийг нь ForgotPassword.asp болгож тавьна.
9
Кодлогдсон г гд лө ө ө
 Зарим тохиолдолд клиент дээр байгаа далд өгөгдлүүд нь кодлогдсон
байх нь байдаг. Жишээ нь :
 Өөрөөр хэлбэл клиентээс дамжигдаж буй кодлогдсон мэдээллийг
сэрвэр талд нь тайлж уншина гэсэн үг.
 Энэ тохиолдолд бид шууд уг утгыг өөрчлөхөд хэцүү болж байна.
10
Кодлогдсон г гд лө ө ө
 Энэ тохиолдолд дараах арга хэмжээнүүдээс авч болох юм :
 Хэрэв чи уг кодлогдсон текстийн цаана байгаа кодлогдсон утгыг мэдэж байгаа бол уг
кодлох алгоритмыг олох гэж оролдож болно.
 Өмнөх лекц дээр ярилцсанчлан энэ кодлох алгоритм нь сайтын өөр хэсэгт хэрэглэгчийн
оруулсан мэдээллийг хэрэглэгчид буцаан үзүүлэхэд ашиглагддаг байж болно. Сайтыг
өөрийг нь ашиглан кодлогдсон мэдээллийг өөрөөр нь тайлуулах боломж энд байж
болно.
 Дээр үзүүлсэн enc хувьсагч нь магадгүй бүтээгдэхүүний үнэ байж болох юм. Тийм
тохиолдолд хэдийгээр хакер нь өөрийн гэсэн үнэ оруулж чадахгүй ч илүү хямдхан
бүтээгдэхүүний кодлогдсон үнийг copy хийн авч үнэтэй бүтээгдэхүүний код дээр paste
хийн хямд үнээх худалдан авах боломж гарч ирж болох юм.
 Хэрэв дээрх бүх арга амжилтгүй болбол уг кодлогдсон өгөгдлийг төрөл бүрээр өөрчлөн
сэрвэр ямар хариу үйлдэл хийж байгааг судлах хэрэгтэй.
 Маш урт утга оруулах
 Стандарт бус тэмдэгт (монгол үсэг) ашиглах
 Тэмдэгтүүдийг нь сольж үзэх
 ....
11
ASP VIEWSTATE
 Бид вэб дээр баахан юм оруулж байгаад Submit товч дартал алдаа
заах тохиолдол байдаг. Өгөгдлөө засах гээд back товч дартал өмнө
оруулсан зүйлс байхгүй болсон байна. Энэ бол тухайн хуудасны
төлөвийг хадгалаагүйн шинж юм.
 Тэгвэл ASP .NET ээр хийсэн вэб дээр Back товч дарвал өмнө оруулсан
мэдээлэл байж байдаг. How come? - Яаж тэр билээ?
 Үүний учир нь ASP .NET ийн ViewState хэмээх ойлголтод оршино.
 Энэ нь форм дотор буй hidden элемент юм.
 Энэ элемент дотор тухайн хуудасны форм дээр юу юу сонгогдсон, бичигдсэн байгааг
хадгалсан байдаг.
 Энэ элементийн утга нь кодлогдсон тул энгийн нүдээр ойлгох боломжгүй.
 Энэ нь вэб програмчлалыг илүү хялбар болгож өгөх зорилготой юм.
 Асуудал : Энэ viewstate нь хүсэлтэд дамжигдах тул вэб-ийн хурдад сөргөөр нөлөөлөх талтай.
12
ASP VIEWSTATE
 Програмистууд энэхүү viewstate дотор өөрийн вэбийн өгөгдлийг хийж
ашиглах нь элбэг байдаг :
 Энэ тохиолдолд үүсэх форм нь дараах байдалтай харагдана :
13
ASP VIEWSTATE
 Програмистууд энэхүү viewstate дотор өөрийн вэбийн өгөгдлийг хийж ашиглах нь
элбэг байдаг :
 Энэ тохиолдолд үүсэх форм нь дараах байдалтай харагдана :
 Хэрэглэгч submit товчийг дарвал дараах хүсэлт илгээгдэнэ :
14
ASP VIEWSTATE
 ViewState нь үнэндээ Base64 алгоритмаар кодлогдсон байдаг. Тиймээс түүний
доторхийг бид тайлан үзэж болно. Дээрх viewState-г Burp ашиглан тайлбал :
 Энд бид үнийг нь 1 болгоод эргүүлэн кодлоод өмнөх хүсэлт дотор хийж өгснөөр
1 төгрөгөөр барааг авах боломжтой болно.
 Гэхдээ ихэнх (90%) вэб сайтуудын viewState-г ийм амархан өөрчилж болдоггүй.
Хэрэв вэб програмист нь
EnableViewStateMac=”true”
тохиргоог тавьж өгсөн бол viewstate-ийн мэдээлэлд нэмэлт код залгагддаг. Хэрэв тэр кодыг мэдэхгүй бол
бид viewstate-ийн утгыг зөв өөрчлөх боломжгүй болох юм.
15
ASP VIEWSTATE
 Энэ тохиолдолд өмнөх viewstate-ийг тайлбал дараах байдалтай харагдаж
болно :
 Төгсгөлд нь янз бүрийн тэмдэгтүүд нэмэгдсэн байна. Энэ нууц түлхүүрийн утга
нь сэрвэр дээр л байх бөгөөд, viewstate-ийн агуулга өөрчлөгдөхөд түүнтэй
зохицон уг түлхүүр өөрчлөгдөх шаардлагатай байдаг.
 Тиймээс хэрэв дээрх тохиргоо (default-р тавиастай байдаг) тавигдсан бол
хакерууд нь viewstate мэдээллийг харж чадах боловч өөрчлөх боломж бараг үгүй
болох юм.
 Хэрэв буруу өөрчилбөл алдааны мэдээлэл үүснэ.
16
ASP VIEWSTATE
 Хэдийгээр дээрх тохиргоо байсан ч viewstate дотроос хакер нь хэрэг болж болох
олон төрлийн мэдээллийг олж болдог. Жишээ нь burp proxy ашиглан viewstate-г
үзэхдээ :
17
JavaScript хамгаалалт
 Вэб дээр өгөгдөл оруулж байх үед JavaScript ашиглан тодорхой
хязгаарлалтуудыг тавих нь элбэг байдаг.
 Барааны тоонд зөвхөн тоо бичихийг шаардах,
 Хэрэглэгчийн нэрийн урт 10 үсгээс хэтрэхгүй байх
 Нууц үгийн урт 5-с хэтрэхгүй тэмдэгтээс тогтох....
 Бидний хувьд дээрх хамгаалалтуудыг эвдэхэд хялбархан.
 Хамгаалалтын шаардаж буй өгөгдлийг оруулаад проксигоороо хүсэлтийг зогсоогоод
тэнд нь өөрийн хүссэн утгаа оруулах.
 Сэрвэрээс ирж буй хариултыг зогсоогоод дотор нь JavaScript ашиглах хэсгүүдийг нь
өөрчлөх.
 Жишээ нь onsubmit = “return check_form();” гэсэн байвал үүнийг нь onsubmit=“return true;” болгох эсвэл энэ хэсгийг
бүрмөсөн устгах байдлаар хуудсыг хамгаалалтгүй болгож болно.
18
JavaScript хамгаалалт
 Зарим сайтууд өөр нэмэлт компонентуудыг клиент талд ашигласан
байдаг.
 Java Applets
 Active X controls
 Shockwave Flash обьектууд
 Эдгээр компонентууд нь хэрэглэгчийн оруулсан утгыг төрөл бүрээр
шалган зөв оруулсан тохиолдолд сэрвэр рүү дамжуулах зэргээр
ажиллаж болно.
 Хэрэв эдгээр компонентууд нь өгөгдлийг байгаа чигээр нь сэрвэр рүү
дамжуулдаг бол бид мэдээж прокси сэрвэрээ ашиглан эдгээр
компонентуудын хамгаалалтыг алгасаж чадна.
19
Java Applets
 Харин эдгээр компонентууд нь хэрэглэгчийн оруулсан өгөгдлийг сэрвэр рүү
дамжуулахын өмнө тусгай алгоритмаар кодлоод дараа нь илгээдэг бол бидэнд
асуудал гарч ирнэ.
 Энэ тохиолдолд уг компонентийн бүтэц, үйл ажиллагааг судлан кодлож буй
алгоритмыг илрүүлэх зэрэг үйл ажиллагаанууд шаардлагатай болох юм.
 Java Applet нь энэ зорилгоор ашиглахад их тохиромжтой байдаг.
 Тэд cross platform.
 Тэднийг ажиллуулахад нэмэлт програм шаардлаггүй.
 Жишээ авч үзье. Java applet-р тоглоом тоглож дууссаны дараа аплет нь тухайн
тоглогчийн оноог сэрвэр рүү илгээх ба тэнд нь уг оноог өндөр онооны
жагсаалтад хадгална. Бид cheat хийн өөрийн авч чадахгүй байгаа өндөр оноог
явуулмаар байгаа боловч аплет нь оноог сэрвэр рүү дамжуулахдаа кодлогдсон
хэлбэрээр явуулж байгаа нь хүндрэлтэй байна.
20
Java Applets
 Вэб хуудасных нь код нь дараах байдалтай харагдаж болох юм :
21
Энд тоглогчийн онооны
кодлогдсон хувилбарыг
дамжуулж байна .
Java Applets
 Хэрэв бид тоглож дуусаад проксигоор явуулж буй хүсэлтийг харвал дараах
байдалтай үзэгдэнэ :
 Одоо бид яах вэ?
 Эхний арга бол олон удаа тоглон илгээгдэж буй кодуудыг оноотой нь харьцуулан
ажиглан кодлож буй алгоритмыг нь олохыг оролдох явдал юм. Жишээ нь нэлээн
хэд тоглосны дараа дараах кодуудыг олж авчээ :
22
Кодын зарим
хэсэг ижил
байхад зарим нь
огт өөр байна.
Java Applets
 Ер нь гарч ирж буй кодоос нь алгоритмыг нь олох нь маш хүнд ажил
юм.
 Дээрхтэй ижлээр онлайн казинод иймэрхүү аплетуудыг ашигласан
сайтууд олон байдаг бөгөөд бид дээрх асуудлыг шийдэж орхивол
онлайнаар мөнгө хийх боломж ч хялбархан олж болох юм шүү!
 Гэхдээ энэ бол гэмт хэрэг гэдгийг мэдэж байгаа биз дээ…
 Дээрхээс илүү ирээдүйтэй арга нь уг аплетийн байт кодоос нь source
кодыг нь гаргаж авах явдал юм.
 Reverse Engineering гэнэ.
 Ер нь бол Java програмаас түүний source кодыг нэг их төвөггүй гаргаад
авч болдог байна.
 Jad
23
Java Applets
 Үүний тулд бид вэб хуудсаа хадгалж авах хэрэгтэй, ингэснээр бид
аплетийн класс файлыг тэндээсээ авах боломжтой болно.
 Дараа нь Jad tool-ийг ашиглан аплетаа зааж өгвөл :
24
Java Applets
25
Java Applets
 Одоо бидний оноо яаж кодлогдож байгаа нь тодорхой боллоо. Хакер
эндээс хэд хэдэн алхам хийж болох юм.
 Энэ нь уг аплетийн Java кодыг нь өөрчлөн аплетийг дахин compile хийн
ашиглах санаанд үндэслэгдэнэ.
 Жишээ нь дараах байдлаар өөрчилж болох юм : getObsScore( )
функцийн кодыг дараахаар тавьж өгч болно :
26
Java Applets
 Эсвэл аплетдаа main функц тавьж өгөөд ашиглах :
 Ингэснийхээ дараа ашиглахдаа :
 Мөн аплетийн кодыг харвал obfuscate() функц нь public байна. Тиймээс
бид түүнийг нь JavaScript-с шууд дуудчихаж ч болох байсан байна :
27
Java Applets
 Зөвөлгөө : Вэб сайт дээр байгаа аплетууд ихэвчлэн .jar өргөтгөлтэй
байдаг. Энэ файл нь үнэндээ өргөтгөлийг нь jar гэж нэрлэсэн zip файл
юм. Тиймээс түүнийг winrar, winzip ашиглан задлан дотроос нь
аплетийн класс кодыг гаргаж авах хэрэгтэй.
 Java байт кодоос source кодыг гаргах өөр чухал програмууд нь :
 Jode
 JSwat
 Java кодыг ийм хялбар гаргаж болдгоос болоод үүнтэй тэмцэх tool-үүд
ч бий болсон байдаг. Хэрэв ийм tool-р байт кодоо хамгаалсан бол эх
кодыг нь гаргаж ирсний дараа ойлгоход маш хэцүү, засварлах, дахин
compile хийхэд ихээхэн хүнд байдалтай код гарч ирдэг.
28
Java Applets
 Жишээ нь дараах кодыг харна уу :
29
Java Applets
 Ингэж өөрчилдөг програмууд нь ихэвчлэн дараах зүйлийг хийж өгдөг :
 Өгөгдөл, хувьсагч, классын нэрсийг ямар ч утгагүй нэрээр солих (a, b, c…)
 Зарим нэрсийг нь Java-ийн түлхүүр үгсээр солих. Гарч ирсэн кодыг дахин compile
хийхэд эрс хүнд болно. Ингэснээр уг байт код буруу болох боловч ихэнх виртуаль
машинууд үүнийг нь үл хэрэгсэн ажиллуулдаг.
 Байт код дотор байгаа шаардлаггүй олон мэдээллүүдийг арчих. Үүнд файлын нэр,
мөрийн дугаар (stack trace дээр мэдээлэл багасна), локал хувьсагчдийн нэрс (debug
хийхэд хүнд болно), дотоод классын мэдээлэл (reflection-г буруу ажиллахад хүргэнэ.)
 Төрөл бүрийн хэрэгцээгүй боловч их л чухал мэт харагдах кодуудыг нэмж өгөх.
 Програмын удирдлагын дамжилтыг санамсаргүй мэт болгон өөрчлөх. Ингэснээр кодыг
нь хараад програмын удирдлагыг яаж ажиллаж байгааг ойлгоход хүнд болно.
 Програмын буруу хэлбэр тавьж өгөх, жишээ нь return хэсэггүй функц, unreachable
statements…
 Ингэж өөрчилсөн програмаар нь өөрчлөгдсөн байт кодыг зарим
тохиргоотойгоор дахин оруулж дээрх төөрөгдүүлэх зүйлсээс заримыг
нь зайлуулж болдог.
30
Active X Controls
 Эдгээр нь аплетийг бодвол илүү их зүйл хийх чадвартай (үйлдлийн
системтэй харилцах гм) хүнд компонентууд юм.
 Ихэвчлэн C, C++ дээр бичигддэг тул эх код нь аплеттай ижлээр шууд
гараад ирдэггүй.
 Гэвч хакер төрөл бүрийн aсемблэр debug програм ашиглан түүний
кодыг нь гаргаж авах, өөрчлөн дахин ажиллуулах зэрэг зүйлс хийдэг.
 Энэ зорилгоор ашиглагддаг tool нь OllyDbg юм. http://www.ollydbg.de/
 Энэ програм нь тухайн заагдсан програмыг ажиллаж байхад нь debug
хийх чадвартай.
31
Active X Controls
 Энэ програмыг ашиглан эдгээр контролууд дотор breakpoint тавих,
алхам алхмаар ажиллуулах, кодыг нь өөрчлөн буруу өгөгдөл хүлээн
авдаг болгох гэх мэтээр ажиллана.
 Ассемблер хэл, процессорын бүтцийн талаар мэдлэг шаардана.
 Энэ сэдвээр нэмэлт мэдээлэл авахыг хүсвэл :
32
Active X Controls
 OllyDbg :
33
Active X Controls
 Active X контролууд нь мөн л олон функцүүдтэй байдаг ба тэдний
ихэнхийг нь броузераас дуудаагүй байдаг.
 Хакер нь эдгээр функцүүдийг нь броузераас дууудах замаар мөн
хүссэндээ хүрэх боломж бас байдаг.
 Үүний тулд уг компонент дотор ямар функцүүд байгааг олж мэдэх
шаардлагатай болно (Reflection).
 Энэ зорилгоор COMRaider програмыг өргөн хэрэглэдэг.
34
Active X Controls Эдгээр контролуудыг вэб сайт ашиглах бас нэг шалтгаан нь нууцлал хамгаалалт өндөртэй
сайтууд хэрэглэгчийг логин хийхийн өмнө хэрэглэгчийн компьютерийг нууцлал
хамгаалалтын хангалттай төвшинд байгаа эсэхийг шалгахад хэрэглэдэг.
 Жишээ нь хэрэглэгчийн компьютер дээр ямар нэг key logger програм байгаа эсэх.
 Вирусны эсрэг ямар програм байгаа
 Үйлдлийн системийн patch –ийн төвшин
 ...
 Хэрэв дээрх зүйл ок байвал хэрэглэгчийг логин хийхийг зөвшөөрдөг.
 Энэ тохиолдолд үүнийг аргалахад хялбар байдаг. Учир нь эдгээр контролууд нь ямар нэг
файлаас, windows registry дотроос дээрх мэдээллүүдийг уншдаг. Хэрэв хаанаас уншиж
байгааг нь олбол бид түүнийг нь өөрчлөөд уг системд логин хийх боломжтой болох юм.
 Програмын ажиллаж байхдаа уншсан регистр, файлуудын тухай мэдээллийг regmon,
filemon зэрэг програмуудаар олж илрүүлж болно.
 Сүүлийн үед эдгээрийн оронд Process Monitor програмыг хэрэглэж байна.
 http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx
35
Active X Controls
 Registry Monitor програм :
36
Active X Controls
 Зарим цөөн тохиолдолд бид C#
хэл дээр бичигдсэн Active X
контролтой тааралдаж болно.
Энэ тохиолдолд түүний кодыг
Java аплеттэй адилаар шууд
илрүүлэх боломжтой.
 Энэ зорилгоор Lutz Roeder-ийн
бичсэн .NET Reflector програмыг
ашиглана.
37
Flash
 Вэб сайтуудад флаш хэрэглэх нь маш элбэг байдаг.
 Ихэвчлэн :
 Вэбийг илүү интерактив болгох
 Илүү аятайхан харагдуулах,
 Онлайн тоглоомуудад
 Онлайн казино
 Флаш обьектууд нь сэрвэрээс HTML кодтой хамт хүрч ирэх .swf
файлууд юм.
 Энэ нь Java ийн байт кодтой ижил санаатай бөгөөд дээрх файл нь
броузерт суулгагдсан Flash виртуаль машин дотор ажилладаг.
38
Flash
 Java аплеттэй ижлээр бид энэ файлыг уншуулан түүний кодыг (Action
Script) гарган авч болох ба өөрчлөн буцаан .swf файл руу хөрвүүлснээр
уг компонентийг өөрийнхөөрөө өөрчилж болох юм.
 Жишээ нь :
 тоглоомын хурдыг багасгах
 3 амьтай тоглоомыг 300 амьтай болгох
 Тоглолтын дүрмийг өөрчлөх
 Оноог хуурамчаар нэмэгдүүлэх ..
 Энэ зорилгоор ашиглаж болох програмууд нь :
39
Flash
40
Flash
41
Бид энэ facer.flm файлыг өөрчлөн
(жишээ нь push maxSpeed, 1)
хадгалаад түүнээсээ дахиад swf
файл үүсгэж болно. Үүний тулд :

Weitere ähnliche Inhalte

Ähnlich wie 4 клиентийн хамгаалалтыг эвдэх

Labornet work программын гарын авлага 2
Labornet work программын гарын авлага 2Labornet work программын гарын авлага 2
Labornet work программын гарын авлага 2halamj
 
Лаборатор-8
Лаборатор-8Лаборатор-8
Лаборатор-8taivna
 
Gosexem asuult 09
Gosexem asuult 09Gosexem asuult 09
Gosexem asuult 09dorjoooo
 
It101 lab 8
It101 lab 8It101 lab 8
It101 lab 8BPurev
 
Face recognition-algorithm-end
Face recognition-algorithm-endFace recognition-algorithm-end
Face recognition-algorithm-endadiyakhuu1
 
Компьютер дээрх алдааг шалгах, засах програмууд
Компьютер дээрх алдааг шалгах, засах програмуудКомпьютер дээрх алдааг шалгах, засах програмууд
Компьютер дээрх алдааг шалгах, засах програмуудEnkhjargalDashdorjEn
 
Face recognition-algorithm-end
Face recognition-algorithm-endFace recognition-algorithm-end
Face recognition-algorithm-endadiyakhuu1
 
Lecture network programming
Lecture network programmingLecture network programming
Lecture network programmingganzorigb
 
Continuous integration
Continuous integrationContinuous integration
Continuous integrationOrgil Urtnasan
 
u.cs101 "Алгоритм ба програмчлал" Лекц №4
u.cs101 "Алгоритм ба програмчлал" Лекц №4u.cs101 "Алгоритм ба програмчлал" Лекц №4
u.cs101 "Алгоритм ба програмчлал" Лекц №4Khuder Altangerel
 

Ähnlich wie 4 клиентийн хамгаалалтыг эвдэх (20)

Hicheel1(90)minit
Hicheel1(90)minitHicheel1(90)minit
Hicheel1(90)minit
 
Lecture1
Lecture1Lecture1
Lecture1
 
Лекц №5
Лекц №5Лекц №5
Лекц №5
 
Vb.net mon1
Vb.net mon1Vb.net mon1
Vb.net mon1
 
вэб дизайн - хичээл 1
вэб дизайн  -  хичээл 1вэб дизайн  -  хичээл 1
вэб дизайн - хичээл 1
 
Labornet work программын гарын авлага 2
Labornet work программын гарын авлага 2Labornet work программын гарын авлага 2
Labornet work программын гарын авлага 2
 
Lab8
Lab8Lab8
Lab8
 
Лаборатор-8
Лаборатор-8Лаборатор-8
Лаборатор-8
 
Gosexem asuult 09
Gosexem asuult 09Gosexem asuult 09
Gosexem asuult 09
 
It101 lab 8
It101 lab 8It101 lab 8
It101 lab 8
 
Lecture2
Lecture2Lecture2
Lecture2
 
Face recognition-algorithm-end
Face recognition-algorithm-endFace recognition-algorithm-end
Face recognition-algorithm-end
 
Компьютер дээрх алдааг шалгах, засах програмууд
Компьютер дээрх алдааг шалгах, засах програмуудКомпьютер дээрх алдааг шалгах, засах програмууд
Компьютер дээрх алдааг шалгах, засах програмууд
 
Face recognition-algorithm-end
Face recognition-algorithm-endFace recognition-algorithm-end
Face recognition-algorithm-end
 
Лекц 1
Лекц 1Лекц 1
Лекц 1
 
Lecture network programming
Lecture network programmingLecture network programming
Lecture network programming
 
Continuous integration
Continuous integrationContinuous integration
Continuous integration
 
u.cs101 "Алгоритм ба програмчлал" Лекц №4
u.cs101 "Алгоритм ба програмчлал" Лекц №4u.cs101 "Алгоритм ба програмчлал" Лекц №4
u.cs101 "Алгоритм ба програмчлал" Лекц №4
 
Java programchlal s.uuganbayr
Java programchlal s.uuganbayrJava programchlal s.uuganbayr
Java programchlal s.uuganbayr
 
2014 IS 101 lec5
2014 IS 101 lec52014 IS 101 lec5
2014 IS 101 lec5
 

4 клиентийн хамгаалалтыг эвдэх

  • 1. Клиентийн хамгаалалтыг алгасах Лекц №4 Бэлтгэсэн Ц.Амарбат (amarbat9@yahoo.com) http://1234.mn/cd Мэдээллийн нууцлал хамгаалалт
  • 2. 2 Агуулга  Вэб сайтыг шинжлэх  Вэбийг шинжлэгч аалзнууд  Хэрэглэгчийн удирдлагатай аалз  Сайтын далд агуулгыг илрүүлэх  Brute Force аргачлал  Сайтад мэдээлэл оруулах цэгүүдийг шинжлэх  Вэб сэрвэрийн технологийг илрүүлэх  URL-с нь сайтыг шинжлэх  Сайтын ажиллагааг өөрт нь ашиглах  Хакерийн дараачийн алхмуудын товч
  • 3. Клиентийн хамгаалалтыг алгасах  Маш олон тооны вэб сайтууд хэрэглэгчээс өгөгдөл авахдаа клиент талд ажиллах компонентуудад найдан, сэрвэр талд шалгалт хийдэггүй нь том асуудал тарьдаг.  Клиент талд байгаа компонентууд нь  JavaScript  HTML Form  Java Applet  ActiveX controls  Flash controls  Эдгээрийг бүгд хакерийн компьютер дээр вэб броузер дотор ажиллах тул хакер эдгээрийг хялбархан аргалж болдог. 3
  • 4. HTML Form Hidden element  Дээр үед олонхи вэб HTML-ийн далд элементэд чухал мэдээллүүдийг хадгалж түүнийгээ ашигладаг байв. Одоо ч ийм сайтууд байсаар л байна.  Үүний сонгодог жишээг доор харуулав :  Код нь : 4
  • 5. HTML Form Hidden element  Энэ тохиолдолд хакер уг хуудсыг хадгалж аваад HTML кодыг нь дараах байдлаар өөрчилсний дараа уг хуудсаа ачаалаад барааг үнэгүй авч болно :  <input type = “hidden” name=“price” value=“0”>  Гэхдээ Proxy сэрвэр ашиглах нь илүү уран арга юм. Дээрх формын товчийг дарвал дараах мэдээлэл сэрвэр рүү дамжигдахыг прокси сэрвэрээр харж болно :  Энд бид мөн л price-ийн утгыг прокси сэрвэр дээрээсээ шууд өөрчилж чадна.  Зөвөлгөө :  Ийм вэб тааралдвал хасах утга оруулж үзэх хэрэгтэй. Зарим вэб сайтууд үнэхээр хасах утгыг хүлээн авдаг бөгөөд барааг та худалдан аваад зогсохгүй таны данс руу оруулсан хэмжээгээр чинь мөнгө оруулах тохиолдол байдаг... 5
  • 6. HTML Cookie  Мөн вэбүүд cookie-д өгөгдлөө хадгалж түүнд найдах явдал их байдаг. Нормал хэрэглэгчид уг cookie-г харахгүй боловч хакерууд мэдээж прокси сэрвэр ашиглан cookie-үүдийг харж, өөрчилж чадна.  Жишээ нь хэрэглэгч логин хийсний дараа дараа хариултыг сэрвэрээс хүлээн авч байгааг прокси сэрвэр харуулж байна:  Ямар асуудлууд энд байна вэ? 6
  • 7. HTML Cookie  Ямар асуудлууд энд байна вэ?  sessId : Энэ утгыг хакер боловсруулан өөр логин хийсэн хэрэглэгчийн session-г олж болно.  UID : Энэ нь магадгүй логин хийсэн хэрэглэгчийн ID байж болох юм. Үүнийг өөрчилбөл өөртөө өгөгдсөн эрхээс илүү эрх олж авч болох юм (access control vulnerability)  DiscountRate : Энэ нь уг хэрэглэгчид үзүүлж буй хямдралын хэмжээ бололтой. Үүнийг 99 болгосноор барааг үнэгүй авч магадгүй. 7
  • 8. Referer header  Ер нь клиентээс сэрвэр рүү дамжигдах ихэнх хүсэлт дотроо referer толгойг агуулдаг. Энэ толгой нь уг хүсэлт хаанаас (ямар хуудаснаас) ирж буйг илтгэдэг.  Зарим вэбүүд энэхүү referer толгойг ашиглан хүсэлт тодорхой дарааллын дагуу явж буй эсэхийг шалгадаг.  Жишээ нь хэрэглэгч нууц үгээ солиход дараах хүсэлт илгээгдсэн байна : 8
  • 9. Referer header  Энэ тохиолдолд програмист нь resetForgotPassword.asp скриптийн код дотор referer толгойг шалган уг хуудсыг зөвхөн ForgotPassword.asp хуудасны дараа л дуудагдана гэж програмчилж болох юм.  PHP дээр уг толгойг авахдаа : $_SERVER['HTTP_REFERER‘]  Хэрэв бид ForgotPassword.asp хуудсаар дамжих сонирхолгүй байвал (энэ хуудас дээр биднээс төрөл бүрийн зүйл нэхсэн байж болно) яах вэ?  Энэ тохиолдолд бид мөн л прокси ашиглан Referer: утгыг өөрчилж хийх боломжтой.  resetForgotPassword.asp хуудсыг шууд URL дээр бичин дуудах бөгөөд проксигоор referer –ийг нь ForgotPassword.asp болгож тавьна. 9
  • 10. Кодлогдсон г гд лө ө ө  Зарим тохиолдолд клиент дээр байгаа далд өгөгдлүүд нь кодлогдсон байх нь байдаг. Жишээ нь :  Өөрөөр хэлбэл клиентээс дамжигдаж буй кодлогдсон мэдээллийг сэрвэр талд нь тайлж уншина гэсэн үг.  Энэ тохиолдолд бид шууд уг утгыг өөрчлөхөд хэцүү болж байна. 10
  • 11. Кодлогдсон г гд лө ө ө  Энэ тохиолдолд дараах арга хэмжээнүүдээс авч болох юм :  Хэрэв чи уг кодлогдсон текстийн цаана байгаа кодлогдсон утгыг мэдэж байгаа бол уг кодлох алгоритмыг олох гэж оролдож болно.  Өмнөх лекц дээр ярилцсанчлан энэ кодлох алгоритм нь сайтын өөр хэсэгт хэрэглэгчийн оруулсан мэдээллийг хэрэглэгчид буцаан үзүүлэхэд ашиглагддаг байж болно. Сайтыг өөрийг нь ашиглан кодлогдсон мэдээллийг өөрөөр нь тайлуулах боломж энд байж болно.  Дээр үзүүлсэн enc хувьсагч нь магадгүй бүтээгдэхүүний үнэ байж болох юм. Тийм тохиолдолд хэдийгээр хакер нь өөрийн гэсэн үнэ оруулж чадахгүй ч илүү хямдхан бүтээгдэхүүний кодлогдсон үнийг copy хийн авч үнэтэй бүтээгдэхүүний код дээр paste хийн хямд үнээх худалдан авах боломж гарч ирж болох юм.  Хэрэв дээрх бүх арга амжилтгүй болбол уг кодлогдсон өгөгдлийг төрөл бүрээр өөрчлөн сэрвэр ямар хариу үйлдэл хийж байгааг судлах хэрэгтэй.  Маш урт утга оруулах  Стандарт бус тэмдэгт (монгол үсэг) ашиглах  Тэмдэгтүүдийг нь сольж үзэх  .... 11
  • 12. ASP VIEWSTATE  Бид вэб дээр баахан юм оруулж байгаад Submit товч дартал алдаа заах тохиолдол байдаг. Өгөгдлөө засах гээд back товч дартал өмнө оруулсан зүйлс байхгүй болсон байна. Энэ бол тухайн хуудасны төлөвийг хадгалаагүйн шинж юм.  Тэгвэл ASP .NET ээр хийсэн вэб дээр Back товч дарвал өмнө оруулсан мэдээлэл байж байдаг. How come? - Яаж тэр билээ?  Үүний учир нь ASP .NET ийн ViewState хэмээх ойлголтод оршино.  Энэ нь форм дотор буй hidden элемент юм.  Энэ элемент дотор тухайн хуудасны форм дээр юу юу сонгогдсон, бичигдсэн байгааг хадгалсан байдаг.  Энэ элементийн утга нь кодлогдсон тул энгийн нүдээр ойлгох боломжгүй.  Энэ нь вэб програмчлалыг илүү хялбар болгож өгөх зорилготой юм.  Асуудал : Энэ viewstate нь хүсэлтэд дамжигдах тул вэб-ийн хурдад сөргөөр нөлөөлөх талтай. 12
  • 13. ASP VIEWSTATE  Програмистууд энэхүү viewstate дотор өөрийн вэбийн өгөгдлийг хийж ашиглах нь элбэг байдаг :  Энэ тохиолдолд үүсэх форм нь дараах байдалтай харагдана : 13
  • 14. ASP VIEWSTATE  Програмистууд энэхүү viewstate дотор өөрийн вэбийн өгөгдлийг хийж ашиглах нь элбэг байдаг :  Энэ тохиолдолд үүсэх форм нь дараах байдалтай харагдана :  Хэрэглэгч submit товчийг дарвал дараах хүсэлт илгээгдэнэ : 14
  • 15. ASP VIEWSTATE  ViewState нь үнэндээ Base64 алгоритмаар кодлогдсон байдаг. Тиймээс түүний доторхийг бид тайлан үзэж болно. Дээрх viewState-г Burp ашиглан тайлбал :  Энд бид үнийг нь 1 болгоод эргүүлэн кодлоод өмнөх хүсэлт дотор хийж өгснөөр 1 төгрөгөөр барааг авах боломжтой болно.  Гэхдээ ихэнх (90%) вэб сайтуудын viewState-г ийм амархан өөрчилж болдоггүй. Хэрэв вэб програмист нь EnableViewStateMac=”true” тохиргоог тавьж өгсөн бол viewstate-ийн мэдээлэлд нэмэлт код залгагддаг. Хэрэв тэр кодыг мэдэхгүй бол бид viewstate-ийн утгыг зөв өөрчлөх боломжгүй болох юм. 15
  • 16. ASP VIEWSTATE  Энэ тохиолдолд өмнөх viewstate-ийг тайлбал дараах байдалтай харагдаж болно :  Төгсгөлд нь янз бүрийн тэмдэгтүүд нэмэгдсэн байна. Энэ нууц түлхүүрийн утга нь сэрвэр дээр л байх бөгөөд, viewstate-ийн агуулга өөрчлөгдөхөд түүнтэй зохицон уг түлхүүр өөрчлөгдөх шаардлагатай байдаг.  Тиймээс хэрэв дээрх тохиргоо (default-р тавиастай байдаг) тавигдсан бол хакерууд нь viewstate мэдээллийг харж чадах боловч өөрчлөх боломж бараг үгүй болох юм.  Хэрэв буруу өөрчилбөл алдааны мэдээлэл үүснэ. 16
  • 17. ASP VIEWSTATE  Хэдийгээр дээрх тохиргоо байсан ч viewstate дотроос хакер нь хэрэг болж болох олон төрлийн мэдээллийг олж болдог. Жишээ нь burp proxy ашиглан viewstate-г үзэхдээ : 17
  • 18. JavaScript хамгаалалт  Вэб дээр өгөгдөл оруулж байх үед JavaScript ашиглан тодорхой хязгаарлалтуудыг тавих нь элбэг байдаг.  Барааны тоонд зөвхөн тоо бичихийг шаардах,  Хэрэглэгчийн нэрийн урт 10 үсгээс хэтрэхгүй байх  Нууц үгийн урт 5-с хэтрэхгүй тэмдэгтээс тогтох....  Бидний хувьд дээрх хамгаалалтуудыг эвдэхэд хялбархан.  Хамгаалалтын шаардаж буй өгөгдлийг оруулаад проксигоороо хүсэлтийг зогсоогоод тэнд нь өөрийн хүссэн утгаа оруулах.  Сэрвэрээс ирж буй хариултыг зогсоогоод дотор нь JavaScript ашиглах хэсгүүдийг нь өөрчлөх.  Жишээ нь onsubmit = “return check_form();” гэсэн байвал үүнийг нь onsubmit=“return true;” болгох эсвэл энэ хэсгийг бүрмөсөн устгах байдлаар хуудсыг хамгаалалтгүй болгож болно. 18
  • 19. JavaScript хамгаалалт  Зарим сайтууд өөр нэмэлт компонентуудыг клиент талд ашигласан байдаг.  Java Applets  Active X controls  Shockwave Flash обьектууд  Эдгээр компонентууд нь хэрэглэгчийн оруулсан утгыг төрөл бүрээр шалган зөв оруулсан тохиолдолд сэрвэр рүү дамжуулах зэргээр ажиллаж болно.  Хэрэв эдгээр компонентууд нь өгөгдлийг байгаа чигээр нь сэрвэр рүү дамжуулдаг бол бид мэдээж прокси сэрвэрээ ашиглан эдгээр компонентуудын хамгаалалтыг алгасаж чадна. 19
  • 20. Java Applets  Харин эдгээр компонентууд нь хэрэглэгчийн оруулсан өгөгдлийг сэрвэр рүү дамжуулахын өмнө тусгай алгоритмаар кодлоод дараа нь илгээдэг бол бидэнд асуудал гарч ирнэ.  Энэ тохиолдолд уг компонентийн бүтэц, үйл ажиллагааг судлан кодлож буй алгоритмыг илрүүлэх зэрэг үйл ажиллагаанууд шаардлагатай болох юм.  Java Applet нь энэ зорилгоор ашиглахад их тохиромжтой байдаг.  Тэд cross platform.  Тэднийг ажиллуулахад нэмэлт програм шаардлаггүй.  Жишээ авч үзье. Java applet-р тоглоом тоглож дууссаны дараа аплет нь тухайн тоглогчийн оноог сэрвэр рүү илгээх ба тэнд нь уг оноог өндөр онооны жагсаалтад хадгална. Бид cheat хийн өөрийн авч чадахгүй байгаа өндөр оноог явуулмаар байгаа боловч аплет нь оноог сэрвэр рүү дамжуулахдаа кодлогдсон хэлбэрээр явуулж байгаа нь хүндрэлтэй байна. 20
  • 21. Java Applets  Вэб хуудасных нь код нь дараах байдалтай харагдаж болох юм : 21 Энд тоглогчийн онооны кодлогдсон хувилбарыг дамжуулж байна .
  • 22. Java Applets  Хэрэв бид тоглож дуусаад проксигоор явуулж буй хүсэлтийг харвал дараах байдалтай үзэгдэнэ :  Одоо бид яах вэ?  Эхний арга бол олон удаа тоглон илгээгдэж буй кодуудыг оноотой нь харьцуулан ажиглан кодлож буй алгоритмыг нь олохыг оролдох явдал юм. Жишээ нь нэлээн хэд тоглосны дараа дараах кодуудыг олж авчээ : 22 Кодын зарим хэсэг ижил байхад зарим нь огт өөр байна.
  • 23. Java Applets  Ер нь гарч ирж буй кодоос нь алгоритмыг нь олох нь маш хүнд ажил юм.  Дээрхтэй ижлээр онлайн казинод иймэрхүү аплетуудыг ашигласан сайтууд олон байдаг бөгөөд бид дээрх асуудлыг шийдэж орхивол онлайнаар мөнгө хийх боломж ч хялбархан олж болох юм шүү!  Гэхдээ энэ бол гэмт хэрэг гэдгийг мэдэж байгаа биз дээ…  Дээрхээс илүү ирээдүйтэй арга нь уг аплетийн байт кодоос нь source кодыг нь гаргаж авах явдал юм.  Reverse Engineering гэнэ.  Ер нь бол Java програмаас түүний source кодыг нэг их төвөггүй гаргаад авч болдог байна.  Jad 23
  • 24. Java Applets  Үүний тулд бид вэб хуудсаа хадгалж авах хэрэгтэй, ингэснээр бид аплетийн класс файлыг тэндээсээ авах боломжтой болно.  Дараа нь Jad tool-ийг ашиглан аплетаа зааж өгвөл : 24
  • 26. Java Applets  Одоо бидний оноо яаж кодлогдож байгаа нь тодорхой боллоо. Хакер эндээс хэд хэдэн алхам хийж болох юм.  Энэ нь уг аплетийн Java кодыг нь өөрчлөн аплетийг дахин compile хийн ашиглах санаанд үндэслэгдэнэ.  Жишээ нь дараах байдлаар өөрчилж болох юм : getObsScore( ) функцийн кодыг дараахаар тавьж өгч болно : 26
  • 27. Java Applets  Эсвэл аплетдаа main функц тавьж өгөөд ашиглах :  Ингэснийхээ дараа ашиглахдаа :  Мөн аплетийн кодыг харвал obfuscate() функц нь public байна. Тиймээс бид түүнийг нь JavaScript-с шууд дуудчихаж ч болох байсан байна : 27
  • 28. Java Applets  Зөвөлгөө : Вэб сайт дээр байгаа аплетууд ихэвчлэн .jar өргөтгөлтэй байдаг. Энэ файл нь үнэндээ өргөтгөлийг нь jar гэж нэрлэсэн zip файл юм. Тиймээс түүнийг winrar, winzip ашиглан задлан дотроос нь аплетийн класс кодыг гаргаж авах хэрэгтэй.  Java байт кодоос source кодыг гаргах өөр чухал програмууд нь :  Jode  JSwat  Java кодыг ийм хялбар гаргаж болдгоос болоод үүнтэй тэмцэх tool-үүд ч бий болсон байдаг. Хэрэв ийм tool-р байт кодоо хамгаалсан бол эх кодыг нь гаргаж ирсний дараа ойлгоход маш хэцүү, засварлах, дахин compile хийхэд ихээхэн хүнд байдалтай код гарч ирдэг. 28
  • 29. Java Applets  Жишээ нь дараах кодыг харна уу : 29
  • 30. Java Applets  Ингэж өөрчилдөг програмууд нь ихэвчлэн дараах зүйлийг хийж өгдөг :  Өгөгдөл, хувьсагч, классын нэрсийг ямар ч утгагүй нэрээр солих (a, b, c…)  Зарим нэрсийг нь Java-ийн түлхүүр үгсээр солих. Гарч ирсэн кодыг дахин compile хийхэд эрс хүнд болно. Ингэснээр уг байт код буруу болох боловч ихэнх виртуаль машинууд үүнийг нь үл хэрэгсэн ажиллуулдаг.  Байт код дотор байгаа шаардлаггүй олон мэдээллүүдийг арчих. Үүнд файлын нэр, мөрийн дугаар (stack trace дээр мэдээлэл багасна), локал хувьсагчдийн нэрс (debug хийхэд хүнд болно), дотоод классын мэдээлэл (reflection-г буруу ажиллахад хүргэнэ.)  Төрөл бүрийн хэрэгцээгүй боловч их л чухал мэт харагдах кодуудыг нэмж өгөх.  Програмын удирдлагын дамжилтыг санамсаргүй мэт болгон өөрчлөх. Ингэснээр кодыг нь хараад програмын удирдлагыг яаж ажиллаж байгааг ойлгоход хүнд болно.  Програмын буруу хэлбэр тавьж өгөх, жишээ нь return хэсэггүй функц, unreachable statements…  Ингэж өөрчилсөн програмаар нь өөрчлөгдсөн байт кодыг зарим тохиргоотойгоор дахин оруулж дээрх төөрөгдүүлэх зүйлсээс заримыг нь зайлуулж болдог. 30
  • 31. Active X Controls  Эдгээр нь аплетийг бодвол илүү их зүйл хийх чадвартай (үйлдлийн системтэй харилцах гм) хүнд компонентууд юм.  Ихэвчлэн C, C++ дээр бичигддэг тул эх код нь аплеттай ижлээр шууд гараад ирдэггүй.  Гэвч хакер төрөл бүрийн aсемблэр debug програм ашиглан түүний кодыг нь гаргаж авах, өөрчлөн дахин ажиллуулах зэрэг зүйлс хийдэг.  Энэ зорилгоор ашиглагддаг tool нь OllyDbg юм. http://www.ollydbg.de/  Энэ програм нь тухайн заагдсан програмыг ажиллаж байхад нь debug хийх чадвартай. 31
  • 32. Active X Controls  Энэ програмыг ашиглан эдгээр контролууд дотор breakpoint тавих, алхам алхмаар ажиллуулах, кодыг нь өөрчлөн буруу өгөгдөл хүлээн авдаг болгох гэх мэтээр ажиллана.  Ассемблер хэл, процессорын бүтцийн талаар мэдлэг шаардана.  Энэ сэдвээр нэмэлт мэдээлэл авахыг хүсвэл : 32
  • 33. Active X Controls  OllyDbg : 33
  • 34. Active X Controls  Active X контролууд нь мөн л олон функцүүдтэй байдаг ба тэдний ихэнхийг нь броузераас дуудаагүй байдаг.  Хакер нь эдгээр функцүүдийг нь броузераас дууудах замаар мөн хүссэндээ хүрэх боломж бас байдаг.  Үүний тулд уг компонент дотор ямар функцүүд байгааг олж мэдэх шаардлагатай болно (Reflection).  Энэ зорилгоор COMRaider програмыг өргөн хэрэглэдэг. 34
  • 35. Active X Controls Эдгээр контролуудыг вэб сайт ашиглах бас нэг шалтгаан нь нууцлал хамгаалалт өндөртэй сайтууд хэрэглэгчийг логин хийхийн өмнө хэрэглэгчийн компьютерийг нууцлал хамгаалалтын хангалттай төвшинд байгаа эсэхийг шалгахад хэрэглэдэг.  Жишээ нь хэрэглэгчийн компьютер дээр ямар нэг key logger програм байгаа эсэх.  Вирусны эсрэг ямар програм байгаа  Үйлдлийн системийн patch –ийн төвшин  ...  Хэрэв дээрх зүйл ок байвал хэрэглэгчийг логин хийхийг зөвшөөрдөг.  Энэ тохиолдолд үүнийг аргалахад хялбар байдаг. Учир нь эдгээр контролууд нь ямар нэг файлаас, windows registry дотроос дээрх мэдээллүүдийг уншдаг. Хэрэв хаанаас уншиж байгааг нь олбол бид түүнийг нь өөрчлөөд уг системд логин хийх боломжтой болох юм.  Програмын ажиллаж байхдаа уншсан регистр, файлуудын тухай мэдээллийг regmon, filemon зэрэг програмуудаар олж илрүүлж болно.  Сүүлийн үед эдгээрийн оронд Process Monitor програмыг хэрэглэж байна.  http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx 35
  • 36. Active X Controls  Registry Monitor програм : 36
  • 37. Active X Controls  Зарим цөөн тохиолдолд бид C# хэл дээр бичигдсэн Active X контролтой тааралдаж болно. Энэ тохиолдолд түүний кодыг Java аплеттэй адилаар шууд илрүүлэх боломжтой.  Энэ зорилгоор Lutz Roeder-ийн бичсэн .NET Reflector програмыг ашиглана. 37
  • 38. Flash  Вэб сайтуудад флаш хэрэглэх нь маш элбэг байдаг.  Ихэвчлэн :  Вэбийг илүү интерактив болгох  Илүү аятайхан харагдуулах,  Онлайн тоглоомуудад  Онлайн казино  Флаш обьектууд нь сэрвэрээс HTML кодтой хамт хүрч ирэх .swf файлууд юм.  Энэ нь Java ийн байт кодтой ижил санаатай бөгөөд дээрх файл нь броузерт суулгагдсан Flash виртуаль машин дотор ажилладаг. 38
  • 39. Flash  Java аплеттэй ижлээр бид энэ файлыг уншуулан түүний кодыг (Action Script) гарган авч болох ба өөрчлөн буцаан .swf файл руу хөрвүүлснээр уг компонентийг өөрийнхөөрөө өөрчилж болох юм.  Жишээ нь :  тоглоомын хурдыг багасгах  3 амьтай тоглоомыг 300 амьтай болгох  Тоглолтын дүрмийг өөрчлөх  Оноог хуурамчаар нэмэгдүүлэх ..  Энэ зорилгоор ашиглаж болох програмууд нь : 39
  • 41. Flash 41 Бид энэ facer.flm файлыг өөрчлөн (жишээ нь push maxSpeed, 1) хадгалаад түүнээсээ дахиад swf файл үүсгэж болно. Үүний тулд :