![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcMjcVQ%2FbtqXMdQfXUK%2F4xLWCoErbQCS5IIq5ISu1k%2Fimg.png)
dreamhack.io
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcPkij3%2FbtqXSoJG3KT%2FFLmtRjB6T2VLpG4anAFwc1%2Fimg.png)
공부/Write-up
[DreamHack] pathtraversal
소스코드의 일부분이다. 코드를 보면 POST로 데이터를 전송해야 정상적으로 userinfo를 보여주게되는데, 이때 따로 검증을 하는 구간이 없다. 따라서 이 부분을 활용해 상위폴더의 flag를 출력해줄 수 있다. 하지만, 이 부분에서 guest를 입력시 0으로 변환되어 값이 전송되고, admin을 입력시 1로 변환되어 전송된다. 그 이외의 값은 undefined로 변경되어 날라간다. 따라서 burpsuite를 통해서 날아가는 값을 변경해주어도 되지만, Chorme Console창에서 아래와 같이 진행하여도 된다. 위 javascript를 보면 users[document.getElementById('userid').value]; 를 통해 최종 값이 입력된다. 따라서 users['원하는 입력 값']='../..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FWDBg0%2FbtqXSncjJaA%2F38paTFyW6yphpAuu9o3Fk1%2Fimg.png)
공부/Write-up
[DreamHack] simple_sqli
소스 코드의 일부이다. 얼핏 보기에 따로 필터링 되는 부분이 없기에 아주 기초적인 sql injection 문제다. userid가 admin일 경우 flag를 출력된다. 따라서 admin의 password는 랜덤으로 설정되기 때문에 sql query문에서 userid를 admin으로 설정해주고 뒷 부분은 주석처리를 하면된다. select * from users where userid="admin" -- and userpassword="{userpassword}" 의 형식으로 만들어 주면 FLAG가 뜬다.