webhacking/etc

webhacking.kr 47, 48

qkqhxla1 2015. 3. 14. 14:16

47.

메일 헤더 인젝션이라는데 

<?

if($_POST[email])
{

$pass="????";

$header="From: $_POST[email]\r\n";

mail("admin@webhacking.kr","readme","password is $pass",$header);


echo(
"<script>alert('Done');</script><meta http-equiv=refresh content=1>");
}
?>

이런식으로 헤더를 만든다고 써있다. php의 mail함수를 찾아보면


mail함수.(‘1’,‘2’,‘3’,‘4’)

1:보낼 주소, 2:제목, 3:보낼 내용, 4:헤더


라고 나와있다. 헤더에 Cc(숨은참조)나 To(보낼 사람) 헤더를 추가하면 설정된 이메일로 메일을 받을수 있다고 한다. 폼에는 아무거나 입력한 후에 파로스로 잡아서


라고 보내준다. 메일주소는 자기 마음대로....



48.


파일을 업로드해보면 3글자가 넘으면 파일을 업로드할수가 없다고 한다. 아무거나 파일을 올리고 파일을 삭제할수 있는데, 삭제시 연산을 생각해보면 system("rm 삭제할 파일명"); 등으로 삭제할거라고 예상할 수 있다. 3글자이내에서 명령어를 실행시켜보려면 ;ls처럼 실행시켜보면 system("rm ;ls"); 가 되어 빈 파일을 삭제 후 ls라는 명령어를 실행하라는걸로 인젝션이 가능하다. 근데 문제를 하드코딩해놨는지 원래는 ;l만 입력해도 ls와 동일한 효과를 내야될거같은데 ;ls꼭 이렇게 다 입력해야된다. 어쨋든 이렇게 파일명을 변경해서 올린다음 삭제 연산을 수행하면 ls가 실행되고 그 중에서 잘 찾아서 들어가면 통과한다.

'webhacking > etc' 카테고리의 다른 글

chall.tasteless.eu Sjukdom  (0) 2015.03.20
php wrapper, LFI, chall.tasteless.se Double Agent, wechall RFI  (1) 2015.03.16
webhacking.kr 42, 43, 44  (0) 2015.03.14
webhacking.kr 36, 38, 41  (0) 2015.03.13
adm1nkyj님의 워게임. prob4, 5  (0) 2015.03.03