ืœืžื” ืžืกื•ื’ืœ ื”ืžื•ื— ืฉืœ ืชืœืžื™ื“ ื”ืœื•ืžื“ ืขืœ ืขื•ืœื ื”ืžื—ืฉื‘ื™ื?

ืฉึธืืœื•ึนื.

ืื—ืจื™ ืฉืกื™ื™ืžืชื™ ืœื›ืชื•ื‘ ืขื•ื“ ืชืกืจื™ื˜ ื‘ื‘ืฉ, ื”ื‘ื ืชื™ ืฉื”ื›ืœ ืฆืจื™ืš ืœื”ื™ื•ืช ืื—ืจืช ืœื’ืžืจื™, ืื‘ืœ ื”ื›ืœ ืขื‘ื“. ืื ื™ ืจื•ืฆื” ืœื”ืจืื•ืช ืœืš ืื™ืœื• ื’ืกื•ื™ื•ืช ื•ืงื‘ื™ื™ื ื›ืชื‘ืชื™ ื›ื“ื™ ืœืคืชื•ืจ ืืช ื”ื‘ืขื™ื”, ืื‘ืœ ืขื“ื™ื™ืŸ ืื™ืŸ ืœื™ ืขื’ืœื” ืฉืœ ื™ื“ืข. ื‘ืžื™ืœื™ื ืื—ืจื•ืช, ืงืจื™ืงื˜ื•ืจื” ืฉืœ ืชื›ื ื•ืช.

ืžืฉื™ืžื”


ืžืฉื”ื• ื ื—ื•ืฅ ื›ื“ื™:

  • ื”ืฆื™ื’ ื—ืจื•ื–ื™ื ืจื‘ื™ื ืœืžื™ืœื”, ืœืžืขื˜ ืจื™ื‘ื•ืขื™ื
  • ื—ืฆื” ืืช ื”ื—ืจื•ื–ื™ื ื”ืจื‘ื™ื ืฉืœ ืฉืชื™ ืžื™ืœื™ื

ื‘ืฉื‘ื™ืœ ืžื”? ื•ื‘ื›ืŸ, ื–ื”ื• - ื•ื–ื”ื•.
ืžื™ ืœื ื™ื•ื“ืข, ื—ืจื™ื–ื” ืžืจื•ื‘ืขืช (ื‘ืฉืคื” ื”ืจื•ื•ื—ืช - ืจื™ื‘ื•ืข) ื”ื™ื ืฉืชื™ ืžื™ืœื™ื ืฉืฉืชื™ ื”ืื•ืชื™ื•ืช ื”ืื—ืจื•ื ื•ืช ืฉืœื”ืŸ ื‘ื›ืชื™ื‘ ื—ื•ืคืคื•ืช, ืžื” ืฉ(ืœืขื™ืชื™ื ืงืจื•ื‘ื•ืช, ื–ื” ื”ื“ื‘ืจ ื”ื™ื—ื™ื“) ื”ื•ืคืš ืื•ืชืŸ ืœื—ืจื™ื–ื”. ืœื“ื•ื’ืžื”, ื•ืจื“ื™ื ื”ื ื›ืคื•ืจ; ืฆืžื™ื’ - ืžื›ื•ื ื™ืช. ื”ืฉื™ืžื•ืฉ ื‘ืจื™ื‘ื•ืขื™ื ื‘ื’ืจืกื” ืžื•ื“ืจื ื™ืช ืื™ื ื• ืžืื•ืฉืจ ื‘ืžื™ื•ื—ื“ ืขืœ ื™ื“ื™ ืื ืฉื™ื, ื‘ืฉืœ ื”ืคืจื™ืžื™ื˜ื™ื‘ื™ื•ืช ืฉืœื”ื.

ื”ื—ืœื˜ื”


ื ืจืื” ืœื™ ืฉื”ืคืชืจื•ืŸ ื”ืคืฉื•ื˜ ื‘ื™ื•ืชืจ ื”ื•ื ืœื›ืชื•ื‘ ืชืกืจื™ื˜ ื‘-Bash ืฉืžืฉืชืžืฉ ื‘ืžื—ื•ืœืœ ื—ืจื™ื–ื” ืฉื›ื‘ืจ ืงื™ื™ื - HOST, ืฉื‘ื•ื—ืจ ืื•ืชื ื‘ืขื™ืงืจ ืœืคื™ ืขื™ืฆื•ืจื™ื, ื•ืœื ืœืคื™ ืื™ื•ืช. ืื™ื–ื” ืกื•ื’ ืฉืœ ืžืืจื—? ื›ื™ ืื ืชืฆื™ื™ื ื• ืืช ื”ืฉื ื”ืืžื™ืชื™ ืฉืœ ื”ืืชืจ, ื™ื’ื™ื“ื• ืฉืžื“ื•ื‘ืจ ื‘ืคืจืกื•ืžืช. ืœืžื” ืœื ืœื”ืžืฉื™ืš ืœื”ืฉืชืžืฉ ื‘ื•? ืจืืฉื™ืช, ืœืžืจื•ืช ื”ื™ืชืจื•ืŸ ืฉืœื• ื‘ื‘ื—ื™ืจืช ื—ืจื•ื–ื™ื ืขืœ ืกืžืš ืขื™ืฆื•ืจื™ื, ื”ื•ื ืขื“ื™ื™ืŸ ืžื™ื™ืฆืจ ืœืขืชื™ื ืงืจื•ื‘ื•ืช ืจื™ื‘ื•ืขื™ื. ืฉื ื™ืช, ืืชื” ืขื“ื™ื™ืŸ ืฆืจื™ืš ืœื—ืฉื•ื‘ ืขื ื”ืžื•ื— ืฉืœืš, ืœื”ืงื“ื™ืฉ ื–ืžืŸ ืœืžืขื‘ืจ ื‘ื™ืŸ ื›ืจื˜ื™ืกื™ื•ืช, ื•ืœืฉื ืŸ ืžื™ืœื™ื ื—ื•ื–ืจื•ืช ื•ื ืฉื ื•ืช ื‘ืจืฉื™ืžื•ืช ื›ื“ื™ ืœืžืฆื•ื ื—ืจื™ื–ื” ืœืฉืชื™ ืžื™ืœื™ื.

ืžืงื‘ืœ ื—ืจื•ื–ื™ื ื—ื–ืงื™ื

ืžื” ืื ื™ ื™ื•ื“ืข? ืื ื™ ื™ื•ื“ืข ืขืœ ื”ืฉื™ืจื•ืช wget, ืืฉืจ ืžื•ืจื™ื“ ืืช ื”ื“ืฃ ื‘ื›ืชื•ื‘ืช ื”-URL ืฉืฆื•ื™ื ื”. ืื•ืงื™ื™, ื‘ื•ื ื ื‘ืฆืข ืืช ื”ื‘ืงืฉื” - ื ืงื‘ืœ ื“ืฃ HTML ื‘ืงื•ื‘ืฅ ื‘ืฉื ืขื ืžื™ืœื” ืžืชื—ืจื–ืช. ืœื“ื•ื’ืžื”, ื‘ื•ืื• ื ื—ืคืฉ ืืช ื”ืžื™ืœื” "ื›ืืŸ":

wget https://HOST/rifma/ะทะดะตััŒ

ืื‘ืœ ืื ื™ ืฆืจื™ืš ืจืง ืจืฉื™ืžื” ืฉืœ ืžื™ืœื™ื, ืื™ืš ืื ื™ ื™ื›ื•ืœ ืœื”ื™ืคื˜ืจ ืžื›ืœ ื”ืฉืืจ? ืื ื—ื ื• ืžืกืชื›ืœื™ื ื•ืจื•ืื™ื ืฉืจืฉื™ืžืช ื”ืžื™ืœื™ื ืžืขื•ืฆื‘ืช, ืžื•ื–ืจื” ื›ื›ืœ ืฉืชื”ื™ื”, ื‘ืฆื•ืจืช ืจืฉื™ืžื”, ื•ื”ืžื™ืœื™ื ื ืžืฆืื•ืช ื‘ืชื’ื™ื•ืช . ื•ื‘ื›ืŸ, ื™ืฉ ืœื ื• ื›ืœื™ ืขื–ืจ ื ื”ื“ืจ. ืฆืžื - ื‘ื•ืื• ื ืจืฉื•ื ืืช ื–ื” ื›ืš:

cat $word | grep '<li>' | sed -e "s%<li>%%" | sed -e "s%</li>%%" | sed -e "s/ //g" | sed -e "/^$/d" 1> $word

ืจืืฉื™ืช, ืžืชื•ืš ืงื•ื‘ืฅ ื”-word, ื‘ื—ืจ ืืช ื”ืฉื•ืจื•ืช ื”ืžื›ื™ืœื•ืช ืืช ื”ืชื’ - ืื ื—ื ื• ืžืงื‘ืœื™ื ื—ื‘ื•ืจื” ืฉืœ ืชื’ื™ื ืจื™ืงื™ื ื•ืฉื•ืจื•ืช ืขื ืžื™ืœื™ื. ืื ื—ื ื• ืžืกื™ืจื™ื ืืช ื”ืชื’ ืขืฆืžื• ื•ืืช ื”ืชื’ ื”ืกื•ื’ืจ ืฉืœื• - ื›ืืŸ ืžืฉืชืžืฉื™ื ื‘ืกืžืœื™ ืื—ื•ื–ื™ื ื‘ืžืงื•ื ืœื•ื›ืกื ื™ื ื›ื™ ื‘ืชื’ ืขืฆืžื• ื™ืฉ ื›ื‘ืจ ื—ืชืš, ืœืžื”? ืฆืžื ืœื ืžื‘ื™ืŸ ืื•ืชืš ืงืฆืช ื•ื”ื›ืœ ื‘ืกื“ืจ ืขื ืจื™ื‘ื™ืช. ืื ื—ื ื• ืžืกื™ืจื™ื ืืช ื›ืœ ื”ืจื•ื•ื—ื™ื ืžื”ืงื•ื‘ืฅ, ืžืกื™ืจื™ื ืฉื•ืจื•ืช ืจื™ืงื•ืช. ื•ื•ืืœื” - ืจืฉื™ืžื” ืžื•ื›ื ื” ืฉืœ ืžื™ืœื™ื.

ืขืœ ืžื ืช ืœื”ืกื™ืจ ืžื™ืœื™ื ืฉืžืชื—ืจื–ื•ืช ื‘ืืžืฆืขื•ืช ื”ืื•ืชื™ื•ืช ื”ืื—ืจื•ื ื•ืช, ื‘ื—ืจ ืืช ืฉืชื™ ื”ืื•ืชื™ื•ืช ื”ืื—ืจื•ื ื•ืช ืžื”ืžื™ืœื” ื”ืžืงื•ืจื™ืช ื•ื ืงื” ืืช ื”ืจืฉื™ืžื”:

squad=${word:((${#word}-2)):2}
cat $word | sed -e "/.$squad$/d" 1> $word

ืื ื—ื ื• ืžืกืชื›ืœื™ื, ืื ื—ื ื• ืžื ืกื™ื - ื”ื›ืœ ืขื•ื‘ื“... ืื– ืื™ืคื” ื”ืจืฉื™ืžื” ืฉืœ ื”ืžื™ืœื” "ืžืฉื—ืง"? ื•ืœืžื™ืœื” "ืื ื™ ื”ื•ืœืš"? ื”ืงื•ื‘ืฅ ืจื™ืง! ื•ื›ืœ ื–ื” ื‘ื’ืœืœ ืฉื”ืžื™ืœื™ื ื”ืืœื” ื”ืŸ ืคืขืœื™ื, ื•ืื ื• ื™ื•ื“ืขื™ื ืžื” ื”ืŸ ืขื•ืฉื•ืช ืœืžื™ ืฉืžืชื—ืจื– ืขื ืคืขืœื™ื. ื—ืจื™ื–ืช ืคืขืœื™ื ื’ืจื•ืขื” ืืคื™ืœื• ืžื—ืจื™ื–ื” ืžืจื•ื‘ืขืช, ื›ื™ ื‘ืฉืคื” ื”ืจื•ืกื™ืช ื™ืฉ ื”ื›ื™ ื”ืจื‘ื” ืคืขืœื™ื, ื•ืœื›ื•ืœื ืื•ืชื ืกื™ื•ืžื•ืช, ื•ืœื›ืŸ ื”ื ืœื ื”ื™ื• ื‘ืงื•ื‘ืฅ ื”ืกื•ืคื™ ืœืื—ืจ ื‘ื“ื™ืงืช ื”ืกื™ื•ืžื•ืช.

ืขื ื–ืืช, ืื ื—ื ื• ืœื ืžืžื”ืจื™ื. ืœื›ืœ ืžื™ืœื” ื™ืฉ ืœื ืจืง ื—ืจื•ื–ื™ื, ืืœื ื’ื ืืกื•ื ื ืกื™ื, ืฉืœืคืขืžื™ื ื ืฉืžืขื™ื ื”ืจื‘ื” ื™ื•ืชืจ ื˜ื•ื‘ ืžื—ืจื™ื–ื” - ืœื›ืŸ ื”ื ืืกื•ื ื ืกื™ื (ืืกื•ื ื ืก ืฆืจืคืชื™, ืžืœื˜ื™ื ื™ืช assono - I sound in tune).

ืื ื—ื ื• ืžืงื‘ืœื™ื ืืกื•ื ื ืกื™ื

ื›ืืŸ ืžืชื—ื™ืœ ื”ื›ื™ืฃ: ืืกื•ื ื ืกื™ื ืžื•ืคื™ืขื™ื ื‘ื›ืชื•ื‘ืช URL ื ืคืจื“ืช, ื•ื‘ืื•ืชื• ืขืžื•ื“, ืขืœ ื™ื“ื™ ื‘ื™ืฆื•ืข ืกืงืจื™ืคื˜, ืฉืœื™ื—ืช ื‘ืงืฉืช HTTP ื•ืงื‘ืœืช ืชื’ื•ื‘ื”. ืื™ืš ืื ื™ ื™ื›ื•ืœ ืœื”ื’ื™ื“ wgetืดืืชื” ืœื•ื—ืฅ ืขืœ ื”ื›ืคืชื•ืจ? ืื‘ืœ ืื™ืŸ ืžืฆื‘. ืœืžืจื‘ื” ื”ืฆืขืจ.

ืฉืžืชื™ ืœื‘ ืฉื›ืชื•ื‘ืช ื”-URL ื‘ืฉื•ืจื” ืื™ื›ืฉื”ื• ืžืฉืชื ื”, ื”ืขืชืงืชื™ ืืช ืžื” ืฉื”ื™ื” ืฉื ืœืื—ืจ ื”ืžืขื‘ืจ ืœืืกื•ืŸ ื•ื”ื“ื‘ืงืชื™ ืื•ืชื• ื‘ืœืฉื•ื ื™ืช ื—ื“ืฉื” ื‘ื“ืคื“ืคืŸ - ื ืคืชื—ื• ื—ืจื•ื–ื™ื ื—ื–ืงื™ื. ืœื ืฉ.

ื‘ืขื™ืงืจื• ืฉืœ ื“ื‘ืจ, ื—ืฉื‘ืชื™, ื–ื” ืœื ืืžื•ืจ ืœืฉื ื•ืช ืœืฉืจืช ืื ื”ืกืงืจื™ืคื˜ ืฉืฉื•ืœื— ืœื• ืืช ื”ื‘ืงืฉื” ืžื‘ื•ืฆืข, ืื• ืื ื”ืื“ื ืžืงืœื™ื“ ืื•ืชื• ื‘ื™ื“. ื›ืš? ืžื™ ื™ื•ื“ืข, ื‘ื•ื ื ืœืš ืœื‘ื“ื•ืง ืืช ื–ื”.

ืœืืŸ ืœืฉืœื•ื—? ืžื” ืœืฉืœื•ื—? ื‘ืงืฉืช HTTP ืœ-IP ืฉืœ ื”ืฉืจืช, ื™ืฉ ืžืฉื”ื• ื›ืžื• GET... ื•ืื– ื™ืฉ ืžืฉื”ื• HTTP/1.1... ืื ื—ื ื• ืฆืจื™ื›ื™ื ืœืจืื•ืช ืžื” ื”ื“ืคื“ืคืŸ ืฉื•ืœื— ื•ืœืืŸ. ืœื”ืชืงื™ืŸ Wireshark, ืชืกืชื›ืœ ืขืœ ื”ืชื ื•ืขื”:

0040 37 5d a3 84 27 e7 fb 13 6d 93 ed cd 56 04 9d 82 7]ยฃ.'รงรป.m.รญรV...
0050 32 7c fb 67 46 71 dd 36 4d 42 3d f3 62 1b e0 ad 2|รปgFqร6MB=รณb.ร .
0060 ef 87 be 05 6a f9 e1 01 41 fc 25 5b c0 77 d3 94 รฏ.ยพ.jรนรก.Aรผ%[ร€wร“.

ืืžืž... ืžื”? ืื” ื›ืŸ, ื™ืฉ ืœื ื• HTTPS. ืžื” ืœืขืฉื•ืช? ืœื”ืคืขื™ืœ ืžืชืงืคืช MITM ืขืœ ืขืฆืžืš? ื‘ืื•ืคืŸ ืื™ื“ื™ืืœื™, ื”ืงื•ืจื‘ืŸ ืขืฆืžื” ืชืขื–ื•ืจ ืœื ื•.

ื‘ืื•ืคืŸ ื›ืœืœื™, ืœืื—ืจ ืฉื”ื—ืœื˜ืชื™ ืœื’ืœื•ืฉ ื‘ื“ืคื“ืคืŸ, ืžืฆืืชื™ ืกื•ืฃ ืกื•ืฃ ืืช ื”ื‘ืงืฉื” ืขืฆืžื” ื•ืืช ื”ื ืžืขืŸ. ืœืœื›ืช:

ื“ื™ืืœื•ื’ ืขื ื”ืžืกื•ืฃ

telnet IP PORT
Trying IP...
Connected to IP.
Escape character is '^]'.
GET /rifma/%D0%BC%D0%B0%D1%82%D1%8C?mode=block&type=asn HTTP/1.1
Host: HOST
Accept-Language: en-US,en;q=0.5
X-Requested-With: XMLHttpRequest
Connection: close

HTTP/1.1 400 Bad Request
Server: nginx/1.8.0
Date: Sun, 03 Nov 2019 20:06:59 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 270
Connection: close

<html>
<head><title>400 The plain HTTP request was sent to HTTPS port</title></head>
<body bgcolor="white">
<center><h1>400 Bad Request</h1></center>
<center>The plain HTTP request was sent to HTTPS port</center>
<hr><center>nginx/1.8.0</center>
</body>
</html>
Connection closed by foreign host.

ื”ื™ื™. ื—ื—ื—ื—. ืื›ืŸ, ื–ื” ืžื” ืฉืฆื™ืคื™ืชื™ ื›ืฉืฉืœื—ืชื™ ื‘ืงืฉืช HTTP ื—ืฉื•ืคื” ืœื™ืฆื™ืืช HTTPS. ื”ืื ืขืœื™ื ื• ืœื”ืฆืคื™ืŸ ืขื›ืฉื™ื•? ื›ืœ ื”ืจืขืฉ ื”ื–ื” ืขื ืžืคืชื—ื•ืช RSA, ื•ืื– ืขื SHA256. ืœืžื”, ื™ืฉ OpenSSL ืœื“ื‘ืจื™ื ื›ืืœื”. ื•ื‘ื›ืŸ, ืื ื—ื ื• ื›ื‘ืจ ื™ื•ื“ืขื™ื ืžื” ืœืขืฉื•ืช, ืคืฉื•ื˜ ื ืกื™ืจ ืงื•ื“ื ืืช ื”ืฉื“ื•ืช Referer ื•-Cookie - ืื ื™ ื—ื•ืฉื‘ ืฉื”ื ืœื ื™ืฉืคื™ืขื• ื”ืจื‘ื” ืขืœ ื”ืขื ื™ื™ืŸ:

ื“ื™ืืœื•ื’ ืขื ื”ืžืกื•ืฃ

openssl s_client -connect IP:PORT
{ะ’ััะบะธะต ะบะปัŽั‡ะธ, ัะตั€ั‚ะธั„ะธะบะฐั‚ั‹}
GET /rifma/%D0%B7%D0%B4%D0%B5%D1%81%D1%8C?mode=block&type=asn HTTP/1.1
Host: HOST
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:70.0) Gecko/20100101 Firefox/70.0
Accept: text/javascript,text/html,application/xml,text/xml,*/*
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate, br
X-Requested-With: XMLHttpRequest
Connection: keep-alive

HTTP/1.1 200 OK
Content-Type: text/html;charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive
Vary: Accept-Encoding
Status: 200 OK
Date: Sun, 03 Nov 2019 20:34:33 GMT
Set-Cookie: COOKIE
X-Powered-By: Phusion Passenger 5.0.16
Server: nginx/1.8.0 + Phusion Passenger 5.0.16
Expires: Thu, 01 Jan 1970 00:00:01 GMT
Cache-Control: no-cache
Strict-Transport-Security: max-age=31536000
Content-Security-Policy: block-all-mixed-content
Content-Encoding: gzip

ืœืžื” ืžืกื•ื’ืœ ื”ืžื•ื— ืฉืœ ืชืœืžื™ื“ ื”ืœื•ืžื“ ืขืœ ืขื•ืœื ื”ืžื—ืฉื‘ื™ื?

ืžื” ื–ื”, ืžืงืœืœืช ื‘ืฉืจืช? ื˜ื•ื‘, ืœืคื—ื•ืช ื”ื ืขื ื• ืœื™ 200 ื‘ืกื“ืจ, ืžื” ืฉืื•ืžืจ ืฉืขื•ื’ื™ื•ืช ื•ื”ืžืคื ื” ืœื ืžืฉืคื™ืขื™ื ืขืœ ื›ืœื•ื. ื”ื“ื—ื™ืกื” ื”ื™ื gzip, ืืš ื‘ืขืช ื”ืขืชืงื”, ืชื•ื•ื™ ASCII ืžื•ืขืชืงื™ื. ื‘ื“ื™ื•ืง, ืืชื” ื™ื›ื•ืœ ืœื”ืกื™ืจ ืืช ื”ืงื• ืงื‘ืœ-ืงื™ื“ื•ื“. ื”ื›ืœ ื‘ืกื“ืจ - ืื ื—ื ื• ืžืงื‘ืœื™ื ืžืกืžืš HTML, ืขื›ืฉื™ื• ืขื ืืกื•ื ื ืกื™ื. ืื‘ืœ ื”ื ื” ืฉืชื™ ืฉืืœื•ืช: ืื™ืš ืœื”ืจื™ืฅ ืืช OpenSSL ื•ืœื”ืขื‘ื™ืจ ืืœื™ื• ื ืชื•ื ื™ื ื‘ืืžืฆืขื•ืช ืกืงืจื™ืคื˜? ื•ืื™ืš ืœืงืจื•ื ืืช ื”ืคืœื˜ ืื ืœืื—ืจ ืงื‘ืœืช ื”ืชื’ื•ื‘ื” ื ื™ืฉืืจ, ื›ื‘ื™ื›ื•ืœ, ื‘"ืžืขื˜ืคืช" ืฉืœ OpenSSL? ืื ืืชื” ื™ื›ื•ืœ ืœื”ืžืฆื™ื ืžืฉื”ื• ืขื ื”ืฉื ื™, ืื‘ืœ ืขื ื”ืจืืฉื•ืŸ...

ื˜ื•ื‘ ืฉื™ืฉ ื”ืื‘ืจืฉื ืงืจืืชื™ ืขืœ ื”ืฉื™ืจื•ืช ืœืฆืคื•ืช, ื”ืžืžื›ืŸ ืืช ืชื”ืœื™ืš ื”ืื™ื ื˜ืจืืงืฆื™ื” ืขื ืชื•ื›ื ื™ื•ืช ื”ืžืฆืคื•ืช ืœืื™ื ื˜ืจืืงืฆื™ื” ืื ื•ืฉื™ืช. ืœื”ื—ื–ื™ืง ืฆื•ื•ืช ื–ื” ืืคื™ืœื• ื™ื•ืชืจ ืื˜ืจืงื˜ื™ื‘ื™ ืฆืคื™ื™ื” ืื•ื˜ื•ืžื˜ื™ืช, ื™ื•ืฆืจืช ืœืฆืคื•ืช ืกืงืจื™ืคื˜ ื”ืžื‘ื•ืกืก ืขืœ ื”ืคืขื•ืœื•ืช ืฉืœืš. ื•ื‘ื›ืŸ, ืื ื—ื ื• ืžืฉื™ืงื™ื ืืช ื–ื”, ืขื•ืฉื™ื ืืช ื›ืœ ื–ื” ื•ื”ื ื” ื”ืชืกืจื™ื˜ ื”ืžื•ื’ืžืจ. ืจืง ื”ื•ื ืžืื•ื“ ืขื ืง, ื•ื”ื›ืœ ื‘ื’ืœืœ OpenSSL ืžืฆื™ื’ ืื™ืฉื•ืจื™ื, ืžืคืชื—ื•ืช ื• ืœืฆืคื•ืช ืžื—ื›ื” ืœืชืคื•ืงื” ืฉืœ ื›ืœ ื–ื”. ื”ืื ืื ื—ื ื• ืฆืจื™ื›ื™ื ืืช ื–ื”? ืœื. ืื ื• ืžืกื™ืจื™ื ืืช ื›ืœ ื”ื”ื ื—ื™ื” ื”ืจืืฉื•ื ื”, ื•ืžืฉืื™ืจื™ื ืจืง ืืช ืžืขื‘ืจ ื”ืฉื•ืจื” ื”ืื—ืจื•ืŸ 'r'. ืื ื—ื ื• ื’ื ืžืกื™ืจื™ื ืืช ื”ืฉื“ื•ืช User-Agent ื•-Accept ืžื”ื‘ืงืฉื” ืฉืœื ื• - ื”ื ืœื ืžืฉืคื™ืขื™ื ืขืœ ืฉื•ื ื“ื‘ืจ. ืื–, ื‘ื•ื ื ืชื—ื™ืœ. ื”ืกืงืจื™ืคื˜ ื”ื•ืคืขืœ, ืื‘ืœ ืื™ืคื” ืžืกืžืš ื”-HTML ื”ื™ืงืจ? ืœืฆืคื•ืช ืื›ืœ ืืช ื–ื”. ื›ื“ื™ ืœื’ืจื•ื ืœื• ืœื™ืจื•ืง ืืช ื–ื”, ืืชื” ืฆืจื™ืš ืœืฉื™ื:

set results $expect_out(buffer)

ืœืคื ื™ ืกื•ืฃ ื”ืกืงืจื™ืคื˜ - ื›ืš ื™ื™ื›ืชื‘ ื”ืคืœื˜ ืฉืœ ืงื•ื‘ืฅ ื”ื”ืคืขืœื” ืœืฆืคื•ืชื”ืคืงื•ื“ื” ื•ืžื•ืฆื’ืช ืขืœ ื”ืžืกืš. ืœืกื™ื›ื•ื, ืžืฉื”ื• ื›ื–ื”:

ืžืฆืคื” ืœืชืกืจื™ื˜

#!/usr/bin/expect -f

set timeout -1
spawn openssl s_client -connect IP:PORT
match_max 100000
expect -exact "
---r
"
send -- "GET /rifma/%d0%b7%d0%b4%d0%b5%d1%81%d1%8c?mode=block&type=asn HTTP/1.1rHost: HOSTrAccept-Language: en-US,en;q=0.5rX-Requested-With: XMLHttpRequestrConnection: close"
expect -exact "GET /rifma/%d0%b7%d0%b4%d0%b5%d1%81%d1%8c?mode=block&type=asn HTTP/1.1r
Host: HOSTr
Accept-Language: en-US,en;q=0.5r
X-Requested-With: XMLHttpRequestr
Connection: close"
send -- "r"
set results $expect_out(buffer)
expect -exact "r
"
send -- "r"
expect eof

ืื‘ืœ ื–ื” ืœื ื”ื›ืœ! ื›ืคื™ ืฉื ื™ืชืŸ ืœืจืื•ืช, ื‘ื›ืœ ื”ื“ื•ื’ืžืื•ืช ื›ืชื•ื‘ืช ื”-URL ืฉืœ ื”ื‘ืงืฉื” ื”ื™ื™ืชื” ืกื˜ื˜ื™ืช, ืืš ื”-URL ื”ื™ื ื–ื• ืฉืื—ืจืื™ืช ืœืื™ื–ื• ืžื™ืœื” ืชืงื•ืฉืจ ืœืืกื•ื ื ืกื™ื. ื•ื›ืš ื™ื•ืฆื ืฉื›ืœ ื”ื–ืžืŸ ื ื—ืคืฉ ืืช ื”ืžื™ืœื” "%d0%b7%d0%b4%d0%b5%d1%81%d1%8c" ื‘-ASCII ืื• "ื›ืืŸ" ื‘-UTF-8. ืžื” ืœืขืฉื•ืช? ื›ืžื•ื‘ืŸ, ืคืฉื•ื˜ ืฆื•ืจ ืกืงืจื™ืคื˜ ื—ื“ืฉ ื‘ื›ืœ ืคืขื, ื—ื‘ืจื™ื! ืœื ืขื•ื“ ืฆืคื™ื™ื” ืื•ื˜ื•ืžื˜ื™ืช'ืื”, ื•ืขื ื”ืขื–ืจื” ื”ื“, ื›ื™ ื‘ื—ื“ืฉ ืฉืœื ื•, ืฉื•ื ื“ื‘ืจ ืœื ืžืฉืชื ื” ืžืœื‘ื“ ื”ืžื™ืœื”. ื•ืชื—ื™ ื”ื‘ืขื™ื” ื”ื—ื“ืฉื”: ืื™ืš ื ื•ื›ืœ ืœืชืจื’ื ื‘ืฆื•ืจื” ื—ื›ืžื” ืžื™ืœื” ืžืงื™ืจื™ืœื™ืช ืœืคื•ืจืžื˜ ื›ืชื•ื‘ืช URL? ื’ื ืœืžืกื•ืฃ ืื™ืŸ ืฉื•ื ื“ื‘ืจ ืžื™ื•ื—ื“. ื•ื‘ื›ืŸ, ื–ื” ื‘ืกื“ืจ, ืื ื—ื ื• ื™ื›ื•ืœื™ื ืœืขืฉื•ืช ืืช ื–ื”, ื ื›ื•ืŸ? ืคื—ื™ืช:

ืชืจืื” ืžื” ืื ื™ ื™ื›ื•ืœ ืœืขืฉื•ืช!

function furl {
furl=$(echo "$word" | sed 's:ะ:%d0%90:g;s:ะ‘:%d0%91:g;s:ะ’:%d0%92:g;s:ะ“:%d0%93:g;s:ะ”:%d0%94:g;s:ะ•:%d0%95:g;s:ะ–:%d0%96:g;s:ะ—:%d0%97:g;s:ะ˜:%d0%98:g;s:ะ™:%d0%99:g;s:ะš:%d0%9a:g;s:ะ›:%d0%9b:g;s:ะœ:%d0%9c:g;s:ะ:%d0%9d:g;s:ะž:%d0%9e:g;s:ะŸ:%d0%9f:g;s:ะ :%d0%a0:g;s:ะก:%d0%a1:g;s:ะข:%d0%a2:g;s:ะฃ:%d0%a3:g;s:ะค:%d0%a4:g;s:ะฅ:%d0%a5:g;s:ะฆ:%d0%a6:g;s:ะง:%d0%a7:g;s:ะจ:%d0%a8:g;s:ะฉ:%d0%a9:g;s:ะช:%d0%aa:g;s:ะซ:%d0%ab:g;s:ะฌ:%d0%ac:g;s:ะญ:%d0%ad:g;s:ะฎ:%d0%ae:g;s:ะฏ:%d0%af:g;s:ะฐ:%d0%b0:g;s:ะฑ:%d0%b1:g;s:ะฒ:%d0%b2:g;s:ะณ:%d0%b3:g;s:ะด:%d0%b4:g;s:ะต:%d0%b5:g;s:ะถ:%d0%b6:g;s:ะท:%d0%b7:g;s:ะธ:%d0%b8:g;s:ะน:%d0%b9:g;s:ะบ:%d0%ba:g;s:ะป:%d0%bb:g;s:ะผ:%d0%bc:g;s:ะฝ:%d0%bd:g;s:ะพ:%d0%be:g;s:ะฟ:%d0%bf:g;s:ั€:%d1%80:g;s:ั:%d1%81:g;s:ั‚:%d1%82:g;s:ัƒ:%d1%83:g;s:ั„:%d1%84:g;s:ั…:%d1%85:g;s:ั†:%d1%86:g;s:ั‡:%d1%87:g;s:ัˆ:%d1%88:g;s:ั‰:%d1%89:g;s:ัŠ:%d1%8a:g;s:ั‹:%d1%8b:g;s:ัŒ:%d1%8c:g;s:ั:%d1%8d:g;s:ัŽ:%d1%8e:g;s:ั:%d1%8f:g;s:ั‘:%d1%91:g;s:ะ:%d0%81:g')}

ื‘ืกืš ื”ื›ืœ ื™ืฉ ืœื ื• ืกืงืจื™ืคื˜ ืฉืžืžื™ืจ ืžื™ืœื” ืœื˜ืงืกื˜ ASCII, ื•ื™ื•ืฆืจ ืกืงืจื™ืคื˜ ื ื•ืกืฃ ืฉืžื‘ืงืฉ ื“ืฃ ืืชืจ ืขื ืืกื•ื ื ืกื™ื ืžื”ืฉืจืช ื“ืจืš OpenSSL. ื•ืื– ืื ื—ื ื• ืžืคื ื™ื ืืช ื”ืคืœื˜ ืฉืœ ื”ืกืงืจื™ืคื˜ ื”ืื—ืจื•ืŸ ืœืงื•ื‘ืฅ, ื•ื‘ื“ืจืš ื”ืžื™ื•ืฉื ืช, ืžืขื‘ื™ืจื™ื ืื•ืชื• ื“ืจื›ื• "ืžืกื ื ื™ื" ืจื™ื‘ื•ืขื™ื ื ื•ืกืคื™ื ื•ื›ืชื•ื‘ ืื•ืชื ืœืงื•ื‘ืฅ.

ืฆื•ืžืช ืฉืœ ืจื‘ื™ื. ืฉื•ืจื” ืชื—ืชื•ื ื”

ืœืžืขืฉื”, ื–ื” ื‘ื“ื™ื•ืง ืžื” ืฉื’ื•ืจื ืœืคื—ื•ืช ื‘ืขื™ื•ืช. ืื ื• ืžื‘ืฆืขื™ื ืืช ื”ื”ืœื™ื›ื™ื ืœืขื™ืœ ืขื‘ื•ืจ ืฉืชื™ ืžื™ืœื™ื, ื•ืœืื—ืจ ืžื›ืŸ ืžืฉืชื™ ื”ืจืฉื™ืžื•ืช ืื ื• ืžืฉื•ื•ื™ื ื›ืœ ืžื™ืœื” ืขื ื›ืœ ืžื™ืœื” ื•ืื ื ืžืฆืื” ื”ืชืืžื”, ืื ื• ืžื•ืฆื™ืื™ื ืื•ืชื”. ืขื›ืฉื™ื• ื™ืฉ ืœื ื• ืกืงืจื™ืคื˜ ืฉืœื•ืงื— ืฉืชื™ ืžื™ืœื™ื ื›ืงืœื˜ ื•ืžืฆื™ื’ ืจืฉื™ืžื” ืฉืœ ืžื™ืœื™ื ืฉืžืชื—ืจื–ื•ืช ืขื ืฉืชื™ื”ืŸ, ื•ืืคื™ืœื• ืชื•ืš ื”ืชื—ืฉื‘ื•ืช ื‘ืืกื•ื ื ืกื™ื, ื•ื›ืœ ื–ื” ืžื‘ืœื™ ืœืขื‘ื•ืจ ื™ื“ื ื™ืช ื‘ื™ืŸ ืืจื‘ืข ื˜ืื‘ื™ื ื•ืœื–ื›ื•ืจ ืžื™ืœื™ื "ื‘ืขื™ืŸ" - ื”ื›ืœ ื ืืกืฃ, ื‘ื—ืฉื‘ื•ืŸ ืขื‘ื•ืจ ื•ื ืžื—ืง ืื•ื˜ื•ืžื˜ื™ืช. ื ึดืคืœึธื.

ืžื˜ืจืช ื”ืคืจืกื•ื ื”ื–ื” ื”ื™ื™ืชื” ืœื”ืจืื•ืช ืฉืื ืื“ื ืฆืจื™ืš ืžืฉื”ื•, ื”ื•ื ื™ืขืฉื” ื–ืืช ื‘ื›ืœ ืžืงืจื”. ืžืื•ื“ ืœื ื™ืขื™ืœ, ืขืงื•ื, ืžืฆืžืจืจ, ืื‘ืœ ื–ื” ื™ืขื‘ื•ื“.

ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”