ch đưa ra lỗi do chỉ c ó đối số msg là một định dạng trong hàm printf
ký tự chuỗi và đối số bổ sung nào. Cảnh báo này được nâng lên do Ig) trong đoạn mã sau: [1’
ên dị ất kỳ
votd m /prìr tf(char *nsg)
pr "The address of tht '
ttne has a format st pr
pr Thtí .ntf(msg);
.ntf("The value of the
Điều : này xảy ra do y input từ • người dùng.
khi lấ
sử dụng không đúng
gunent: 0x%.8x\n", (unstgned) &msg);
msg ’ a ring V ilnerabiltty ta 0x%.8x\n", target); cách và không chỉ định các mã định dạng trong ỗ hổng này, chúng tôi chỉ cầ 1 thay Để khắc phục
dịch l li chương trìnr một lần nữa để kiểm tra xem hế nó bằng printf (“% s”, msg) và biênsự cố đã thực sự được khắc phục chưa. Phần
nhiều
sau cho thấy chương trình đã sửa đ hơn cung cấp bất kỳ cảnh báo nào:
ổi [1
và biên
]_____dịch lại nó theo cách tương tự, không
[10/18x^.8 8x^.8 [10/1 Ẳc [10/1 8x^.8: [10/1
719]seed@VM:~$ nc -u 127.0.0.1 9690 < iiput
[10/17/19]seed@VM:~/Lab8$ gcc -2 execstack -0 server server.c
ĩ 10/17/19]seed@VM:~/Lab8$ sudo ./server The aldress of the secret: 0x080487cO
The aidress of the 'target' variable: 0x0804a )40
The Vỉlue of the 'target' variable (betore): )X11223344 The aidress oT the 'msg' argument: 0xbffff0aO
8<%.8x%.8<%.8>%.8xí.8x%?8x%.8x%.ítx%.8x%.8 (%.8x%.8x%.8x%.8x%.8x%.8x%.8x%.8x%.
8x%.8 <%.8x%.8 <%.%r
The V ỉlue of the 'target' variable (íitter): 0(11223344 The aldress of the 'msg' argument: 0xbffff0aO
. 8 <%. 8x%. 8:<%. 8>%. 8x%. 8x%?8x%. 8x%. íìx% . 8x%. 8 (%. 8x%. 8x%. 8x%. 8x%. 8x%. 8x%. 8x%. 8x%.
8x%.8 <%.8x%.8:<%.%.8x
The Vỉlue of the 'target' variable (atter): 0(11223344
[1]
Do đe, bản sửa lỗi đ ã giúp khắc phục lỗ h lổng chuỗ