본문 바로가기
728x90

Los4

LOS 6번 darkelf 문제 id=guest, pw는 비어있다. 그냥 평소대로 GET 방식으로 입력해주면 그대로 출력은 된다. if(preg_match('/or|and/i', $_GET[pw])) exit("HeHe"); 하지만 or랑 and 사용을 제한하고 있음. 그럼 or를 우회하면 되겠네! or를 우회하는 문자열은 '||'가 있다. URL Encoder를 이용해 '||'를 입력하면 %7C라는 것을 확인할 수 있다. ?pw=%27%7C%7Cid=%27admin 왘 풀었다!! 2021. 9. 17.
LOS 3번 Goblin 문제 SQL injection 왕왕초보 3번문제부터 버벅대기 시작 이번 문제는 id에 guest가 입력되어 있기 때문에 pw만 입력하면 되는데.. pw가 아니라 no라고 적혀있다. $query = "select id from prob_goblin where id='guest' and no={$_GET[no]}"; no에 적합한 변수를 입력해주면 값을 가져올 것 같은데.... 일단 출력하는법은 앞이랑 똑같다. ?no=3 특이점이 있다면.. no를 입력하는 구문에는 작은 따옴표가 없다. 자세히보니 윗부분에서 ', ", \를 필터링하고 있다. 일단 no=no로 참이되게 입력해봤더니 id=guest니까 guest를 환영해주고 있다. if($result['id']) echo "Hello {$result[id]}"; 이.. 2021. 9. 14.
LOS 2번 Cobolt 문제 1번 Gremlin 문제와 다를건 없어보이는데 패스워드 부분이 md5('')로 조금 다르다. md5 암호화해서 저장한다는건지..는 모르겠고 사실 이 문제도 1번이랑 똑같이 풀면 풀린다. 하지만 다른 방법으로도 한번 풀어봄. 비밀번호를 무력화하는 또 다른 방법이 하나 있는데, 바로 주석을 사용하는 것이다. 주석 : # 근데 그냥 id=admin%27# 이렇게 바로 #를 입력해주면 안되고, #의 인코딩 값인 %23을 입력해주어야 한다. id=admin%27%23 그럼 admin'까지는 그대로 해석되고 #뒤인 ' and pw=md5('')는 다 무력화 됨. COBOLT도 클리어! 2021. 9. 13.
LOS 1번 Gremlin 문제 https://los.rubiya.kr/gate.php los.rubiya.kr 동아리 시간에 과제로 나왔던 문제.. 새로운 홈페이지를 알게 되어서 문제를 하나하나 풀어보려고 한다. 홈페이지는 이런 식으로 되어 있음.. 이제 두 개 풀었다 ^^ 문제도 풀고, 소소하게 Write up도 해보련다. 사실 SQLinjection은 잘 모르기도 하고 풀기 싫게 생겨서 맨날 회피만 했는데 늦게나마 DB 수업도 듣게 되었으니 졸업 전에 꼭 마스터해야지. Gremlin 위에 query문이 출력이 되고 있는데, URL에 GET 방식으로 쿼리를 보내면 id와 pw창이 내가 입력한 값으로 채워질 것이다. 여기서 알아두어야 할 기초적인 상식은 현재 입력되어 있는 URL 뒤에 '?'(물음표)를 붙여주어야 한다는 것 이런식으로.. 2021. 9. 12.
728x90