Hallo, ik ben bezig met de OSCP security training en heb voor een lab (meteen een disclaimer dus: nee ik doe niks illegaals, dit is mijn werk) een exploit gevonden. Ik heb 'm hier en daar wat aangepast met die zeer gelimiteerde kennis van programmeren die ik helaas nog heb...
Nu loop ik tegen een probleem aan... Hier volgt een stukje code van een publieke exploit van CUPS:
http://sebug.net/paper/Ex...s/0301-exploits/sigcups.c
Hierin heb ik het originele retaddr vervangen van 805289688 naar 3232239841 (de int waarde van 192.168.16.225)
Als Ik de code nu compile lijkt die waarde nu te groot te zijn voor "unsigned long"?
Hoe krijg ik dit nu toch aan de praat zonder dat het impact heft op the hele lijn code (incl erachter)?
de error:
gcc ./cups.c
./cups.c:38:1: warning: this decimal constant is unsigned only in ISO C90 [enabled by default]
Nu loop ik tegen een probleem aan... Hier volgt een stukje code van een publieke exploit van CUPS:
http://sebug.net/paper/Ex...s/0301-exploits/sigcups.c
C:
1
2
3
4
5
6
7
8
9
10
11
12
13
| #define BUF_SIZE 4096 #define die(a) { perror("[!] "a); exit(-1); } int verbose = 0; char *host = "127.0.0.1"; int port = 631; unsigned long retaddr = 3232239841; /* exploit: *($retaddr * 4) = $address_of_shellcode */ char greet[] = "POST /jobs HTTP/1.1\nContent-type: application/x-www-form-urlencoded\nContent-length: %d\n\n"; char evilmsg[] = "-%u="; /* |
Hierin heb ik het originele retaddr vervangen van 805289688 naar 3232239841 (de int waarde van 192.168.16.225)
Als Ik de code nu compile lijkt die waarde nu te groot te zijn voor "unsigned long"?
Hoe krijg ik dit nu toch aan de praat zonder dat het impact heft op the hele lijn code (incl erachter)?
de error:
gcc ./cups.c
./cups.c:38:1: warning: this decimal constant is unsigned only in ISO C90 [enabled by default]
[ Voor 0% gewijzigd door NMe op 07-05-2015 17:23 ]