![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FxmUiV%2Fbtq3YLGuMfJ%2FVkn2BaUYMNBQTyv08YAb6K%2Fimg.png)
[Webhacking.kr] 7번
2021. 5. 4. 00:00
Wargame/Webhacking.kr
sql injection 문제 소스는 다음과 같다. $go 변수에 $_GET[‘val’] 파라미터 저장 $go 변수에 2, -, +, from, _, =, \s, *, \ 등의 문자열 존재 시 Access Denied! 발생 $rand 변수에 rand 함수를 적용한 1~5의 랜덤 값 선언 $rand 변수에 입력된 값에 따라 조건문 실행 $data에 mysqli_fetch_array($result) 문으로 데이터 값 저장 $data[0] == 1일 경우 Access_Denied! 출력 $data[0] == 2일 경우 Hello admin 출력 후 Solve(7) 수행 $data [0]이 2 값을 저장해야 Solve(7) 수행 UNION을 이용해 앞의 쿼리문을 거짓으로 만들고 뒤의 쿼리문을 참으로 만들어서 ..
![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbDGCzm%2Fbtq33aFGSwK%2FvQPEj3ZK47xr7kpYJZ4Sx1%2Fimg.png)
[Webhacking.kr] 6번
2021. 5. 3. 21:24
Wargame/Webhacking.kr
쿠키값 변조 문제 처음에 쿠키값이 설정되어 있지 않은 경우 default 로 guest와 123qwe 을 각각 id, pw로 해서 20번 base_64 encoding 하고, 규칙대로 replace 한다. User, password 쿠키값이 존재할 경우, 아까와는 반대로 replace 하고, 20번 base64_decode 한다. 이때 id, pw 값이 각각 “admin, nimda” 면 solve()가 실행된다. 그러면 반대로 “admin, nimda”를 base64_encode 해주고, replace 해줘서 나오는 값을 쿠키에 넣어주면 될 것 같다. -> 위를 컴파일하면 나오는 id, pw 값을 edit this cookie 를 이용해 쿠키 값을 변조해주면 되는 문제였다.
![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlX9vu%2Fbtq354ywduW%2Fny1xMmXHJRIhGJU0DCRMo0%2Fimg.png)
[Webhacking.kr] 5번
2021. 5. 3. 21:10
Wargame/Webhacking.kr
Login 클릭 – wrong password 라고 뜬다. Join 클릭 – access denied라고 뜬다. -> url에 나온 경로를 보고 /mem 에 접속해보았다. -> join.php에 접속해보았다. Access denied 가 뜬다. 소스코드를 보니 난독화 되어있어 다음 사이트를 이용했다. https://beautifier.io/ 이후 크롬 콘솔 기능을 이용해 난독화된 코드를 풀었다. 위와 같은 코드가 나왔다. 해석을 해보면, oldzombie 라는 쿠기값이 있어야 되고 URL에 mode=1 이 포함되어야 회원가입할 수 있는 창이 뜨는 것 같다. edit this cookie로 갑자기 추가가 안되었다 ㅠㅠ Admin 으로 가입하려고 하니, 이미 존재하는 id 라고 뜬다. -> php에서는 공백..
![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fkw6As%2Fbtq35DngtAH%2F6HIZjoB8Bpe4WvE0DnlUv1%2Fimg.png)
[Webhacking.kr] 4번
2021. 5. 3. 20:28
Wargame/Webhacking.kr
레인보우 테이블 문제 암호화된 해시를 푸는 문제인 것 같다.. ... 세션값은 10000000, 99999999 사이의 임이의 값 + "salt_for_you"이고, 출력하는 해시값은 sha1을 500번 돌린 값이다. 문제의 핵심은 출력된 해시값을 보고 sha1 알고리즘을 돌리기 전 세션값을 찾는 것이다. 그런데, 해시 알고리즘은 단방향 암호화 기법으로 결과값을 통해 입력값을 알아낼 수 없다. 브루트 포스 공격 또한 막아져있다. -> 레인보우 테이블을 만들어서 풀어야 한다. 단방향 암호화 알고리즘의(=해시 알고리즘) 특징인 '문자열 A를 암호화하면 어떤 경우에도 문자열 B가 된다'는 특징을 이용하여, 특정 문자열들에 대한 암호화를 통해 도출된 결과값들을 모두 저장한 것이 레인보우 테이블이다. 아예 입력값..
![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbIMswK%2Fbtq37Bvvie4%2FVriEpXAuKk1iJDxBuRtC2k%2Fimg.png)
[Webhacking.kr] 3번
2021. 5. 3. 20:22
Wargame/Webhacking.kr
SQL injection 문제 규칙을 찾아서 위와 같이 칠해주면 다음 페이지가 뜬다. 아무거나 입력하니 answer, ip가 뜬다. answer, ip 값은 고정적이다. hidden 타입으로 answer와 그 값이 전달되는 것을 알 수 있다. 처음에 입력받는 부분에 sql injection을 시도했지만, 입력이 그대로 전달되는걸 보아 문자열로 취급하는 것 같았다. 그래서 value 값에 '를 넣어보니 쿼리 에러가 발생하여 sql injection을 시도해보았다.
![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbmLAZU%2Fbtq35DU4TE2%2FRwsttjLKruYJ5ef3GVGtZ1%2Fimg.png)
[Webhacking.kr] 1번
2021. 5. 3. 20:14
Wargame/Webhacking.kr
쿠키 인젝션 문제 다음이 문제의 핵심 부분이다. 쿠키는 $_COOKIE["쿠키이름"]을 통해 접근할 수 있다. 위 부분을 보고 ‘user_lv’ 쿠키 값으로 5초과 6미만일 경우 solve(1) 될 것이라 추측하였다. Edit this cookie (크롬 플러그인)을 통해서 ‘user_lv’ 라는 쿠키 값으로 5.5를 줬다.
![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbDi6sv%2Fbtq3Jz0PZYL%2F7KHTDLuMYMDN2ybC82UdPK%2Fimg.png)
[P4C] pwnable problem writeup3
2021. 4. 29. 22:51
Hacking/Pwnable
팀원분들이 직접 제작하신 포너블 문제를 풀어보는 시간이다. (이번엔 재용님이 제작하신 문제들에 대한 롸업이다.) 1번 문제) 문제 이름을 입력받고, 멘트를 출력한다. scanf 로 입력받을 시 입력값 검증을 하지 않기에 bof 가 발생한다. -> ret 를 변경가능할 것이다. ret 를 ShowFlag() 로 변경해주면 될 듯하다. 익스플로잇 showFlag() 주소 : 0x400567 ret 까지의 offset : 72 byte payload 는 다음과 같을 것이다. "A"*72 + 0x400567 2번 문제) canary, nx, pie 모두 걸려있다..! aslr 은 꺼져있다. ID, PW 를 입력받고, 멘트를 출력한다. id, pw 를 버퍼 크기만큼만 입력받는다. s와 "admin" 을 비교한 결..
![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FE60f8%2Fbtq3NHwuhM2%2FCJMsd3oqlj4qSU9TcuHmqK%2Fimg.png)
[P4C] pwnable problem writeup2
2021. 4. 29. 19:11
Hacking/Pwnable
팀원분들이 직접 제작하신 포너블 문제를 풀어보는 시간이다. (이번엔 종학님이 제작하신 문제들에 대한 롸업이다.) 1번 문제) 문제 buf, key의 주소를 출력하고 입력을 받는다. gets() 함수 입력 시 bof 가 발생한다. key 값을 변경해서 쉘을 획득하면 될 것 같다. 문제 해결 과정 buf의 위치 : ebp - 0x36 key의 위치 : ebp - 0x4 offset -> 50byte payload는 다음과 같을 것이다. "A"*50 + 0x44454144 익스플로잇 2번 문제) 문제 buf 의 주소를 출력해주고, 입력을 받는다. buf 의 주소를 출력해주고 입력을 받는다. 이때 gets() 로 입력 받을 시 bof 가 발생한다. -> 쉘코드를 넣고, ret 까지 더미로 채운 다음 ret 에 ..