웹해킹(77)
-
old-48 풀이
파일을 올릴 수 있는 폼이 있습니다 일단 아무 파일이나 하나 올려보겠습니다 upload file을 누르면 올린 파일의 내용이 보입니다 제가 올린 파일은 test.txt입니다 ./upload/ 경로에 들어가 있네요 그럼 이번에는 올린 파일을 삭제해 보겠습니다 mode, time이 URL에 붙어 나오며, 파일은 정상적으로 삭제됩니다 upload 기능이 있으니, php 웹쉘도 하나 만들어서 올려보겠습니다 위와 같이 파일을 만들어서 업로드해봤지만, php 코드가 실행되지 않았습니다 혹시 SQL Injection이나 XSS일까 싶어, 기본 구문들을 다 넣어봤지만.... 전부 꽝이었습니다 파일을 삭제할 때 봤던 URL에서 mode와 time이 있었는데, 이게 힌트인가 싶어 이것저것 게싱으로 막 넣어봤습니다 (tim..
2024.02.12 -
old-02 풀이
코드를 확인해 봤는데 주석 2개가 달려있습니다 하나는 시간, 하나는 admin.php의 존재를 알려주는 문구였습니다 우선 admin.php로 접속해 보겠습니다 secret password를 입력하라고 합니다 그냥 아무 값(admin)이나 입력해 보겠습니다 wrong password라는 문구가 뜨네요 이 상태로 개발자 도구를 열어서 코드를 살펴봤는데, 딱히 힌트가 될만한 부분은 없었습니다 Application으로 들어가서 쿠키라도 살펴보겠습니다 time이라는 쿠키가 하나 있네요? 첫 화면에서 봤던 시간이랑 연관이 있는 것 같은데, 이 값을 1로 바꾸고 시간을 다시 확인해 보겠습니다 2070-01-01 09:00 까지는 고정인 것 같고, 그 뒤에 사용자가 입력한 쿠키 값이 출력되는 것 같습니다 (2070-0..
2024.02.11 -
old-49 풀이
lv를 GET으로 받아오고, preg_match() 함수로 다양한 필터링을 적용합니다 id를 "admin"으로 만들어야 문제가 해결되므로, 입력값을 넣을 때 id='admin'을 or로 묶어 넣어줘야 합니다 그러나 or는 필터링이 되고 있으므로, ||를 사용하도록 하겠습니다 select id from chall49 where lv={$_GET['lv']} 쿼리가 이렇게 생겼는데, 여기에 적절한 값을 넣어주면 쿼리문은 아래와 같은 형태가 됩니다 select id from chall49 where lv=0||id=0x61646D696E 초록색으로 적힌 부분을 input box에 넣어주면 됩니다
2024.02.10 -
old-21 풀이
대놓고 Blind SQL Injection이라고 쓰여있습니다 admin/admin, guest/guest/, test/test 등으로 로그인을 해보겠습니다 guest 계정으로 로그인에 성공했습니다 Blind SQL Injection을 하려면 참, 거짓을 넣었을 때 Result 부분에 어떤 값이 나오는지 알아야 합니다 ' or 1=1 #과 ' or 1=2 #로 참, 거짓 값을 넣어보겠습니다 참을 넣었을 때와 거짓을 넣었을 때 결과 값이 다르므로, 정상적으로 Blind SQL Injection을 시도할 수 있습니다 파이썬으로 자동화 스크립트를 만들어서 문제를 해결할 수 있습니다
2024.02.09 -
old-46 풀이
SQL Injection 문제입니다 코드를 쭉 보니 lv에 id를 "admin"으로 만들어줄 수 있는 적절한 SQL 쿼리를 넣어주면 될 것 같습니다 그러나, lv에 preg_match()로 필터링이 적용되고 있고, str_replace()로 특수문자도 몇 가지 막혀있습니다 $result = mysqli_fetch_array(mysqli_query($db,"select id,cash from chall46 where lv=$_GET[lv]")); 이 쿼리에서 id를 "admin"으로 만들기 위해서는 id='admin'을 or 연산으로 묶어줘야 합니다 하지만 '는 addslashes() 함수로 필터링되므로, char() 함수로 admin을 표현하여 넣어주겠습니다 hex() 함수를 사용하지 않는 이유는 if문..
2024.02.09 -
old-43 풀이
이번 문제는 웹쉘 문제인가 봅니다 php로 cat /flag를 실행하는 기본 웹쉘을 만들어봤습니다 만든 웹쉘인 ws.php를 업로드해봤는데, wrong type이라고 뜹니다 아마 .php를 필터링하는 것 같습니다 .PhP로 바꾸거나 .php.jpg로 바꿔봤지만, 역시나 필터링이 되네요 아예 Content-Type을 바꿔야겠습니다 ws.php를 업로드할 때의 패킷을 잡아서 Content-Type를 jpeg로 바꿔줬습니다
2024.02.07