Безопасность интернет-приложений осень 2013 лекция 9

209 views
176 views

Published on

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
209
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
9
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Безопасность интернет-приложений осень 2013 лекция 9

  1. 1. время энергопотребление ошибки 2
  2. 2. - Ciphertext-only: у нас есть только зашифрованный текст/тексты Known plaintext: есть шифротекст и соответствующий ему открытый текстё Chosen plaintext: мы можем выбирать текст для шифровки Related key: у нас есть несколько шифровок одного текста с разными ключами 3
  3. 3. web LDAP 5
  4. 4. Login: searchlogin= "(&(uid="+user+")" (userPassword={MD5}"+base64(pack("H*",md5(pass)))+"))"; GET /login?user=*)(uid=*))(|(uid=*&pass=any searchlogin="(&(uid=*)(uid=*)) (|(uid=*)(userPassword={MD5}X03MO1qnZdYdgyfeuILPmQ==))" 6
  5. 5. Blocklist & | ! = ~= >= <= * () Boolean AND Boolean OR Boolean NOT Equals Approx Greater than Lesser than Any character Grouping 7
  6. 6. <?xml version="1.0" encoding="ISO-8859-1"?> <tag1> <tag2>$var</tag2> </tag1> GET /?var=</tag2><tag3>value</tag3><tag2> 8
  7. 7. XML External Entity <?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE foo [ <!ELEMENT foo ANY > <!ENTITY xxe SYSTEM "file:///path/to/file" >]> <foo>&xxe;</foo> 9
  8. 8. <html> <!--#include virtual=”header.html” --> </html> SSI directives: echo var="varname" include virtual="docname" exec cmd="command" 10
  9. 9. src data1 data2da strcpy gets sprintf ... 12
  10. 10. Stack-based void f(char* var){ char buf[10]; } void main(int argc,char** argv){ f(argv[1]); } argv buf argv var Stack frame Mem Stack argv ret address argv ... Mem ... 13
  11. 11. Heap-based void main(int argc,char** argv){ char* buf; buf = (char*)malloc(256); strcpy(buf,argv[1]); } buf data ... argv Mem argv Mem ... 14
  12. 12. 8bit: 255 +2 = 1 16bit: 65535+2=1 32bit: 4294967295+2=1 nresp = packet_get_int(); if (nresp > 0) { response = xmalloc(nresp*sizeof(char*)); for (i = 0; i < nresp; i++) response[i] = packet_get_string(NULL); } 15
  13. 13. printf sprintf snprintf ... printf("%s%s%s",v1,v2); %s string %p pointer %i integer %x hexadecimal %n write to pointer 16

×