рдПрдХ рднреЗрджреНрдпрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ ...



рдПрдХ рд╕рд╛рд▓ рдкрд╣рд▓реЗ, 21 рдорд╛рд░реНрдЪ, 2019, рдореЗрдВ рдПрдХ рдмрдЧ рдЗрдирд╛рдо рдХрд╛рд░реНрдпрдХреНрд░рдо Mail.ru HackerOne рдкрд░ рдПрдХ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдЖрдпрд╛ рдмрдЧ рд░рд┐рдкреЛрд░реНрдЯ рд╕реЗ maxarr ред рдЬрдм рдПрдХ HTTP рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рди рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╡реЗрдмрдореЗрд▓ рдПрдкреАрдЖрдИ рдЕрдиреБрд░реЛрдзреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рдкреЛрд╕реНрдЯ рдкреИрд░рд╛рдореАрдЯрд░ рдореЗрдВ рдПрдХ рд╢реВрдиреНрдп рдмрд╛рдЗрдЯ (рдПрдПрд╕рд╕реАрдЖрдИрдЖрдИ 0) рдХреЛ рдПрдореНрдмреЗрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЕрдкреНрд░рддреНрдпрдХреНрд╖ рдореЗрдореЛрд░реА рдХреЗ рдЯреБрдХрдбрд╝реЗ рдХреЛ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдбреЗрдЯрд╛ рдореЗрдВ рджреЗрдЦрд╛ рдЧрдпрд╛ рдерд╛, рдЬрд┐рд╕рдореЗрдВ рдЬреАрдИрдЯреА рдорд╛рдкрджрдВрдбреЛрдВ рд╕реЗ рдЯреБрдХрдбрд╝реЗ рдФрд░ рдЕрдиреНрдп рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд╣реЗрдбрд░ рдереЗред рдПрдХ рд╣реА рд╕рд░реНрд╡рд░ред

рдпрд╣ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рднреЗрджреНрдпрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЕрдиреБрд░реЛрдзреЛрдВ рдореЗрдВ рд╕рддреНрд░ рдХреБрдХреАрдЬрд╝ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдХреБрдЫ рдШрдВрдЯреЛрдВ рдмрд╛рдж, рдПрдХ рдЕрд╕реНрдерд╛рдпреА рдлрд┐рдХреНрд╕ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬрд┐рд╕рдиреЗ рдПрдХ рд╢реВрдиреНрдп рдмрд╛рдЗрдЯ рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд┐рдпрд╛ (рдЬреИрд╕рд╛ рдХрд┐ рдмрд╛рдж рдореЗрдВ рдкрддрд╛ рдЪрд▓рд╛, рдпрд╣ рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ CRLF / ASCII 13, 10 рдХреЛ рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдереА, рдЬреЛ рдЖрдкрдХреЛ HTTP рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд╣реЗрдбрд░ рдФрд░ рдбреЗрдЯрд╛ рдХреЛ рд╣реЗрд░рдлреЗрд░ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдпрд╣ рдХрдо рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рд▓реЗрдХрд┐рди рдХрдо рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдЕрднреА рднреА рдЕрдкреНрд░рд┐рдп)ред рдЙрд╕реА рд╕рдордп, рд╕рдорд╕реНрдпрд╛ рдХреЛ рдмрдЧ рдХреЗ рдХрд╛рд░рдгреЛрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдФрд░ рд╕рдорд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реБрд░рдХреНрд╖рд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдХреЛрдВ рдФрд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

Mail.ru рдореЗрд▓ рдПрдХ рдмрд╣реБрдд рд╣реА рдЬрдЯрд┐рд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╣реИ, рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдлреНрд░рдВрдЯ-рдПрдВрдб / рдмреИрдХ-рдПрдВрдб рдШрдЯрдХ, рджреЛрдиреЛрдВ рдУрдкрди рд╕реЛрд░реНрд╕ (рд╕рднреА рдореБрдлреНрдд рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж) рдФрд░ рд╣рдорд╛рд░реЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╡рд┐рдХрд╛рд╕, рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рднрд╛рдЧ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВред рдирдЧрдиреЗрдХреНрд╕ рдФрд░ рдУрдкрдирд░реЗрд╕реНрдЯреА рдХреЛ рдЫреЛрдбрд╝рдХрд░ рд╕рднреА рдШрдЯрдХреЛрдВ рдХреЛ рдмрд╛рд╣рд░ рдХрд░рдирд╛ рдФрд░ ngx.req.set_uri () рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдХрд░рдирд╛ рд╕рдВрднрд╡ рдерд╛редрдПрдХ OpenResty рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ, рдЬреЛ рдЕрдкреЗрдХреНрд╖рд╛ рдХреЗ рдЕрдиреБрд░реВрдк рд╡реНрдпрд╡рд╣рд╛рд░ рдирд╣реАрдВ рдХрд░рддреА рдереА (рдЬреАрдИрдЯреА рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдиреЗ рд╕реЗ ngx_http_rewrite_module рдкрд░ рдПрдХ рд╢реВрдиреНрдп рдмрд╛рдЗрдЯ рдпрд╛ рд▓рд╛рдЗрди рдлрд╝реАрдб рдЫрдбрд╝реА рдХрд░реЗрдВ, рдЬреЛ рдкреНрд░рд▓реЗрдЦрди рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ, рдмрд┐рд▓реНрдХреБрд▓ рдЙрд╕реА рддрд░рд╣ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП)ред рд╕рдВрднрд╛рд╡рд┐рдд рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд╕рдмрд╕реЗ рд╕рдЦреНрдд рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдпрд╣ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдХрд┐ рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ рд╕рднреА рд╕рдВрднрд╡ рд╡реИрдХреНрдЯрд░ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЬреЛ рддрдВрддреНрд░ рд╕реНрдореГрддрд┐ рд╕рд╛рдордЧреНрд░реА рдХреЗ рд░рд┐рд╕рд╛рд╡ рдХрд╛ рдХрд╛рд░рдг рдмрдирд╛ рд╡рд╣ рдПрдХ рд░рд╣рд╕реНрдп рдмрдирд╛ рд░рд╣рд╛ред рдПрдХ рдорд╣реАрдиреЗ рдмрд╛рдж, рдмрдЧреНрд░реЗрдкреЛрд░реНрдЯ рдХреЛ рдЕрдзрд┐рдХреГрдд рдХреЗ рд░реВрдк рдореЗрдВ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдмрдЧ рдХреЗ рдХрд╛рд░рдгреЛрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдмреЗрд╣рддрд░ рд╕рдордп рддрдХ рд╕реНрдердЧрд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

OpenResty рдПрдХ рдмрд╣реБрдд рд╣реА рд▓реЛрдХрдкреНрд░рд┐рдп рдкреНрд▓рдЧрдЗрди рд╣реИ рдЬреЛ рдЖрдкрдХреЛ Nginx рдХреЗ рдЕрдВрджрд░ Lua рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдИ Mail.ru рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдирд╣реАрдВ рдорд╛рдирд╛ рдЧрдпрд╛ред рдФрд░ рдХреБрдЫ рд╕рдордп рдмрд╛рдж, рд╡реЗ рдлрд┐рд░ рднреА рдЙрд╕рдХреЗ рдЕрд╕рд▓реА рдХрд╛рд░рдгреЛрдВ, рд╕рдВрднрд╛рд╡рд┐рдд рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рд╕рдордЭрдиреЗ рдФрд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рд╕рд┐рдлрд╛рд░рд┐рд╢реЗрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрд╕рдХреЗ рдкрд╛рд╕ рд▓реМрдЯ рдЖрдПред рд╕реНрд░реЛрдд рдХреЛрдб рдбреЗрдирд┐рд╕ рдбреЗрдирд┐рд╕реЛрд╡ рдФрд░ рдирд┐рдХреЛрд▓рд╛рдИ рдПрд░реНрдорд┐рд╢рдХрд┐рди рджреНрд╡рд╛рд░рд╛ рдЦреБрджрд╛рдИ рдХреА рдЧрдИ рдереА ред рдРрд╕рд╛ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐:

  • nginx rewrite directory traversal ( SSRF) , , Nginx Amplify Gixy (, , ). OpenResty , .

    :

    location ~ /rewrite {
        rewrite ^.*$ $arg_x;
    }
    
    location / {
        root html;
        index index.html index.htm;
    }




    curl localhost:8337/rewrite?x=/../../../../../../../etc/passwd
    root:x:0:0:root:/root:/bin/bash
    daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
    bin:x:2:2:bin:/bin:/usr/sbin/nologin
    ...


  • nginx , , rewrite . nginx , , , , , . .

    (^@ )
    
    location ~ /memleak {
        rewrite ^.*$ "^@asdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdasdf";
    }
    
    location / {
        root html;
        index index.html index.htm;
    }



    curl localhost:8337/secret -vv
    ...
    curl localhost:8337/memleak -vv
    ...
    Location: http://localhost:8337/secret
    ...

  • Nginx GET- rewrite GET-. nginx . POST . OpenResty GET POST , POST OpenResty .

    :

    location ~ /memleak {
        rewrite_by_lua_block {
            ngx.req.read_body();
            local args, err = ngx.req.get_post_args();
            ngx.req.set_uri( args["url"], true );
        }
    }
    
    location / {
        root html;
        index index.html index.htm;
    }
    


    :

    curl localhost:8337 -d "url=secret" -vv
    ...
    curl localhost:8337 -d "url=%00asdfasdfasdfasdfasdfasdfasdfasdf" -vv
    ...
    Location: http://localhost:8337/{... secret...}
    ...



рд╕рдорд╕реНрдпрд╛ nginx рдФрд░ OpenResty рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдмрддрд╛рдИ рдЧрдИ рдереА, рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ nginx рдореЗрдВ рд╕реБрд░рдХреНрд╖рд╛ рддреНрд░реБрдЯрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рдирд╣реАрдВ рдорд╛рдирддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ nginx рдореЗрдВ рд╡рд┐рд╢реЗрд╖ рд╡рд░реНрдгреЛрдВ рдХреЗ рдЗрдВрдЬреЗрдХреНрд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рддреНрд░реБрдЯрд┐ рдХрд╛ рдлрд╛рдпрджрд╛ рдЙрдард╛рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ, рд╕реНрдореГрддрд┐ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдкреНрд░рдХрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реБрдзрд╛рд░ 16 рджрд┐рд╕рдВрдмрд░ рдХреЛ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рдмрд╛рдж рдХреЗ 4 рдорд╣реАрдиреЛрдВ рдореЗрдВ, OpenResty рдореЗрдВ рдХреЛрдИ рдмрджрд▓рд╛рд╡ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдПрдХ рд╕рдордЭ рдереА рдХрд┐ ngx.req.set_uri () рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдПрдХ рд╕реБрд░рдХреНрд╖рд┐рдд рд╕рдВрд╕реНрдХрд░рдг рдЖрд╡рд╢реНрдпрдХ рдерд╛ред 18 рдорд╛рд░реНрдЪ, 2020 рдХреЛ, рд╣рдордиреЗ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рдХрд╛рд╢рд┐рдд рдХреА, 21 рдорд╛рд░реНрдЪ рдХреЛ, рдУрдкрдирд░рд┐рдЯреА рдиреЗ рд╕рдВрд╕реНрдХрд░рдг 1.15.8.3 рдЬрд╛рд░реА рдХрд┐рдпрд╛ , рдЬреЛ рдПрдХ рдпреВрдЖрд░рдЖрдИ рдЪреЗрдХ рдЬреЛрдбрд╝рддрд╛ рд╣реИред

рдкреЛрд░реНрдЯреНрд╕рд╡рд┐рдЧрд░ рдиреЗ рд▓рд┐рдЦрд╛ рдореИрдВрдиреЗ OpenResty рдФрд░ Nginx рд╕реЗ рдПрдХ рдЕрдЪреНрдЫрд╛ рд▓реЗрдЦ рд▓рд┐рдпрд╛ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдЯрд┐рдкреНрдкрдгреА рдХрд┐ рд╕реНрдореГрддрд┐ рдХрд╛ рдХреЗрд╡рд▓ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдЯреБрдХрдбрд╝рд╛ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдЧрд▓рдд рдФрд░ рднреНрд░рд╛рдордХ рд╣реИ, рдпрд╣ рд╢реВрдиреНрдп рдмрд╛рдЗрдЯ рдХреЗ рдмрд╛рдж рд▓рд╛рдЗрди рдХреА рд▓рдВрдмрд╛рдИ рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╣реЛрддрд╛ рд╣реИ рдФрд░, рд╕реНрдкрд╖реНрдЯ рд▓рдВрдмрд╛рдИ рдкреНрд░рддрд┐рдмрдВрдз рдХреЗ рдЕрднрд╛рд╡ рдореЗрдВ, рд╣рдорд▓рд╛рд╡рд░ рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ)ред

рддреЛ рдХреНрдпрд╛ рдЧрд▓рддреА рдереА рдФрд░ рдЗрд╕реЗ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП?


рдХреНрдпрд╛ рдирдЧреАрдирдХреНрд╕ рдореЗрдВ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдереА? рд╣рд╛рдВ, рдпрд╣ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рд╕реНрдореГрддрд┐ рд░рд┐рд╕рд╛рд╡ рд╡реИрд╕реЗ рднреА рдПрдХ рддреНрд░реБрдЯрд┐ рд╣реИред

рдХреНрдпрд╛ OpenResty рдореЗрдВ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдереА? рд╣рд╛рдВ, рдХрдо рд╕реЗ рдХрдо OpenResty рджреНрд╡рд╛рд░рд╛ рдХреА рдЧрдИ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреА рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рдореБрджреНрджреЗ рдХреА рдЬрд╛рдВрдЪ рдФрд░ рджрд╕реНрддрд╛рд╡реЗрдЬ рдирд╣реАрдВ рдХрд┐рдП рдЧрдП рд╣реИрдВред

рдХреНрдпрд╛ OpenResty рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди / рдЙрдкрдпреЛрдЧ рддреНрд░реБрдЯрд┐ рд╣реБрдИ рд╣реИ? рд╣рд╛рдВ, рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рд╕реНрдкрд╖реНрдЯ рд╕рдВрдХреЗрдд рдХреА рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЙрдкрдпреЛрдЧ рдХреА рдЧрдИ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреА рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдЕрд╕рддреНрдпрд╛рдкрд┐рдд рдзрд╛рд░рдгрд╛ рдмрдирд╛рдИ рдЧрдИ рдереАред

рдЗрдирдореЗрдВ рд╕реЗ рдХреМрди рд╕реА рддреНрд░реБрдЯрд┐ $ 10,000 рдХрд╛ рдмрд╛рдЙрдВрдЯреА рд╕реБрд░рдХреНрд╖рд╛ рднреЗрджреНрдпрддрд╛ рд╣реИ?рд╣рдорд╛рд░реЗ рд▓рд┐рдП, рдпрд╣ рдЖрдо рддреМрд░ рдкрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИред рдХрд┐рд╕реА рднреА рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдореЗрдВ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдХрдИ рдШрдЯрдХреЛрдВ рдХреЗ рдЬрдВрдХреНрд╢рди рдкрд░, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╡рд┐рднрд┐рдиреНрди рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдФрд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП, рдХреЛрдИ рднреА рдХрднреА рднреА рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рджреЗ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЙрдирдХреЗ рдХрд╛рдо рдХреА рд╕рднреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдкреНрд░рд▓реЗрдЦрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдХреЛрдИ рднреА рд╕реБрд░рдХреНрд╖рд╛ рднреЗрджреНрдпрддрд╛ рдареАрдХ рдЙрд╕реА рдЬрдЧрд╣ рдкрд░ рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИ рдЬрд╣рд╛рдВ рдпрд╣ рд╕реБрд░рдХреНрд╖рд╛ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИред

рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ, рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛ рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рдХрд░рдиреЗ рдпрд╛ рд╕реАрдорд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рдЕрднреНрдпрд╛рд╕ рд╣реИ, рдЬреЛ рдХрд┐рд╕реА рднреА рдмрд╛рд╣рд░реА рдореЙрдбреНрдпреВрд▓ / рдПрдкреАрдЖрдИ рдкрд░ рдЬрд╛рддрд╛ рд╣реИ, рдЕрдЧрд░ рдХреЛрдИ рд╕реНрдкрд╖реНрдЯ рд╕рдВрдХреЗрдд рдирд╣реАрдВ рд╣реИрдВ рдФрд░ рдПрдХ рдЕрд╕реНрдкрд╖реНрдЯ рд╕рдордЭ рд╣реИ рдХрд┐ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

рд╢реБрджреНрдзрд┐рдкрддреНрд░


рдЕрдиреБрднрд╡ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рдХреЗ рдХреНрд░рдо рдореЗрдВ, рднрд╛рд╖рд╛ рдХреА рд╢реБрджреНрдзрддрд╛ рдХреЛ рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рдореЗрдВ:

рдПрдХ рдмрдЧ рдЗрдирд╛рдо - рдХреАрдбрд╝реЗ рдХреЗ рд▓рд┐рдП рд╢рд┐рдХрд╛рд░ рдкреНрд░рддрд┐рдпреЛрдЧрд┐рддрд╛
рдмрдЧ рд░рд┐рдкреЛрд░реНрдЯ - рддреНрд░реБрдЯрд┐ рд╕реВрдЪрдирд╛
рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ - рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ
opensorsny - рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд
рд╢реБрджреНрдзрд┐рдкрддреНрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЬрд╛рдирд╛ - рдХреАрдбрд╝реЗ рдкрд░ рдХрд╛рдо

All Articles