Notice
Recent Posts
Recent Comments
Link
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Tags
more
Archives
Today
Total
관리 메뉴

D1N0's hacking blog

Lord of SQL injection - Cobolt 본문

Web/Lord of SQL injection

Lord of SQL injection - Cobolt

D1N0 2020. 11. 10. 21:11

문제 풀이

Cobolt 문제에 들어가면 다음과 같은 모습이 보인다

Gremlin과 다를 바 없지만 이번에는 불러온 행의 id가 admin이어야 하고, pw는 md5 암호화를 한다

이를 보면 Gremlin에서처럼 pw를 이용한 SQL injection은 어려워 보인다

때문에 id를 사용해 SQL injection을 진행하면 된다

첫 번째 풀이

id=admin'%23

이렇게 쓰면 쿼리가 select id from prob_cobolt where id='admin'#' and pw=md5('')가 된다

주석을 사용해 pw검증을 실행하지 않는 건 Gremlin과 같지만 id를 admin으로 지정해주었다

두 번째 풀이

id=admin' or '1' = '1

이렇게 쓰면 쿼리가 select id from prob_cobolt where id='admin' or '1' = '1' and pw=md5('')가 된다

Gremlin 두 번째 풀이와 비슷한데, and가 or보다 우선도가 높기 때문에 id가 admin인 것 또는 pw가 md5('')인 것을 가져오게 된다.

사실 뒤의 부분은 중요하지 않아서 id=admin' or 'a' = 'a 나 id=admin' or '1' = '0 모두 가능하다

세 번째..?

일반적으로 database에서 table 맨 위의 사용자는 관리자이다

그러니 id를 굳이 admin이라고 지정하지 않아도 where에 True을 넘겨주면 첫 번째 사용자를 받아올 수 있다

그래서 짜 본 세 번째 풀이는 id=' or 1=1;%23이다

잘 보면 Gremlin 코드와 같다

그래서 정상적으로 풀어질 줄 알았더니...?

php코드의 elseif로 넘어온 듯하다

이를 통해 prob_cobolt의 1번 사용자는 rubiya임을 알 수 있다

이번 문제는 특정한 사용자의 정보를 지정하는 것을 연습하는 것이 주제였던 것 같다

'Web > Lord of SQL injection' 카테고리의 다른 글

Lord of SQL injection - Darkelf  (0) 2020.11.11
Lord of SQL injection - Wolfman  (0) 2020.11.11
Lord of SQL injection - Orc  (0) 2020.11.10
Lord of SQL injection - Goblin  (0) 2020.11.10
Lord of SQL injection - Gremlin  (0) 2020.11.10
Comments