김승현

[Lord Of SQLInjection] cobolt 2번 문제 write up 본문

Web/Lord Of Sql

[Lord Of SQLInjection] cobolt 2번 문제 write up

kshind 2023. 3. 5. 00:04

문제

저번 문제와 코드에서의 차이점은 pw를 md5로 저장하 것과 id가 admin이고 pw가 일치할 경우 cobolt가 slove되고

그게 아니라면 You are not admin :(라고 출력되는 것 같다. id에 admin을 입력하고 뒤엔 주석처리를 하면 될 것 같다.

admin' or %23

위와 같이 입력하게 되면 

select id from prob_cobolt where id='admin' or #' and pw=md5('{$_GET[pw]}'

이렇게 입력되기 때문에 id는 admin이라서 참이고 뒤엔 주석처리 되어서 없어지기에 참이 되어 solve된다.

#을 %23으로 입력한 이유는 url로 사용할 수 없는 문자나 의미가 왜곡될 수 있는 문자들은 인코딩을 거치는데,

이를 url encoding이라고 한다. 입력될 땐 디코딩 되어 입력이 된다고 볼 수 있기 때문에 #대신 %23으로 입력함으로써

우리가 의도한대로 #이 입력되어 주석처리가 된다.