Web/Los4 Los - orc orc를 풀기 전, 알아두면 좋은 개념 및 함수 Blind SQL Injection Blind SQL Injection을 정리하기 이전에, 알고가면 좋은 개념과 함수에 대해 먼저 정리한다. 이 공격기법은 일반적으로 ' or 1=1-- 와 같은 공격패턴을 사용하는 인증우회(Auth Bypass)기법의 상위 단계라고 lyk00331.tistory.com pw가 참이어도, id가 admin인 계정과 비교하여 일치할 때 Flag가 나오기 때문에 정확한 pw를 알아야 한다. pw길이 구하기 이 문제는 db에 존재하는 admin 계정의 pw와 우리가 입력할 pw가 일치해야 풀리도록 만들어졌다. 그래서 pw 길이를 일단 알아야 하고, 그 후에 substring 함수로 정확한 pw를 구할 것이다. 주어진 쿼리에서 우리.. 2020. 12. 29. Los - goblin id가 admin이면 풀린다. 그러나 id에는 guest 값이 고정되어있고, no 값만 받게끔 되어있다. id를 admin으로 만들기 no에는 정수형 값을 받는다. 아무런 값(숫자)을 넣은 후, id 값을 이어서 넣어줄 수 있다. 새로 만들어준 id 값은 파라미터로 보면 no 영역에 입력되기 때문에, ', ",` 등 따옴표가 필터링되어있어서(6번째 줄) 문자열로 인식시킬 수 없다. 우회를 위해 주석처리 #을 %23으로 나타낸 것처럼, '도 %27로 입력해보았으나, 마찬가지로 필터링되어있어서 불가능했다. 값을 넘기기 위해서는 해당 값이 문자열이라는 것을 알릴 수 있는 다른 방법이 필요하다. 시행착오 1 더보기 처음에는 concat() 함수를 사용해서 값을 전달해줄 수 있나 해봤지만, 안 됐다. 시행착오 2.. 2020. 12. 5. Los - cobolt 쿼리문이 실행되었을 때, id가 admin인 값이 존재한다면 문제가 풀린다는 것을 알 수 있다. id를 admin으로 만들기 이 문제는 pw에 md5로 암호화되어있기 때문에, 앞서 풀었던 gremlin과 같이 pw 입력 전에 주석처리로 pw를 무력화 해주어야 한다. URL은 영어나 숫자 등 몇몇 문자를 제외하고는 16진수 값으로 인코딩하기 때문에, #을 입력하면 인식하지 못한다. 따라서 URL 인코딩 코드 값인 %23을 입력하면 주석처리가 가능해진다. 쿼리 id=admin' 를 입력한 후, %23(#)로 주석처리를 해서 pw를 무력화했다. DB가 서버에 변조된 쿼리 결과를 전송하고, 변조된 페이지 내에 DB 정보를 전송하여 COBOLT Clear! 라는 문장이 나타나며 문제가 풀린다. 2020. 12. 4. Los - gremlin php 코드를 보면, 쿼리문이 실행되었을 때, id의 값이 존재한다면 문제가 풀린다는 것을 알 수 있다. 이 문제를 푸는 방법은 크게 id 값을 변조하는 방법과, pw 값을 변조하는 방법으로 나뉜다. 1. id 값을 참으로 만들어 해결 이 방법은 단순히 참으로만 만드는 것이 아닌, pw 입력 전에 주석처리시켜 pw를 무력화 해주는 것이 포인트이다. 이때, URL은 영어나 숫자 등 몇몇 문자를 제외하고는 16진수 값으로 인코딩하기 때문에, #을 입력하면 인식하지 못한다. 따라서 URL 인코딩 코드 값인 %23을 넣어줌으로써 주석처리가 가능해진다. or 1=1 구문을 넣어 id를 참으로 만든 후, %23을 입력해서 pw를 무력화시켜줬다. DB가 서버에 변조된 쿼리 결과를 전송하고, 변조된 페이지 내에 DB .. 2020. 7. 15. 이전 1 다음