728x90 Web16 LOS 4번 orc 문제 (풀이실패) 이번에는 id에 admin이 고정되어 있다. $_GET[pw] = addslashes($_GET[pw]); 여기서 addslashes란? 문자 앞에 백슬래시를 붙여서 이스케이프하는 것 이 문제는 예전에 풀었던 Blind SQL injection이다. query에 내가 뭔가를 입력하면 오류메시지 대신 참/거짓으로만 뜨는걸 blind SQL inejction이라고 함. 일단 평소에 SQL injection을 공격하는것 처럼 'or '1'='1을 입력해보았다. 로그인은 잘 됨. 근데 아까 말했듯이 Blind SQL injection이라고 했으니까, 여기서 우리가 할 수 있는 것은 비밀번호를 맞추는 것. 어떻게? 유추를 해서!! 예) 처음에 우리가 pw=' or '1'='1 이렇게 해서 값을 무조건 참이 되게 .. 2021. 9. 15. 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. 이전 1 2 3 4 다음 728x90