분석 id와 pw를 입력받고 addslashes를 사용합니다. 문제가 될법한 '나 " 그리고 \ 같은 문자들을 이스케이프 해주는 함수이고 이름부터 보이듯 strrev로 문자열을 뒤집어서 id, pw에 넣습니다. 그리고 쿼리가 참이면 solve. abcd, 1234를 넣으면 뒤집어서 들어가는 모습 id에 따옴표를 치면 \' 여야하는데 '\로 거꾸로 들어간 모습 \'를 치면 '\\\ 이 들어갑니다. \' 는 '\\\ '는 '\ \는 \\ "는 "\ '로 우회해보려고 했는데 '\로 되다보니 따옴표 부분이 끊깁니다. 풀이 이쯤 되면 풀이로 넘어가야 할 거 같은데 \는 \\로 바뀌니 쓸모가 없고 그럼 "\가 뒤를 \로 만들어서 쓸모가 생깁니다. 이전 문제처럼 \로 우회한다면 https://los.rubiya.kr..
분석 이번 문제는 succubus, 4주차 과제 첫 번째 문제입니다. id 와 pw를 받고 둘 다 따옴표가 막혀있습니다. 이렇게하고 구문이 참이면 문제가 풀리는 것 같습니다. 스터디에서 배웠던 대로 따옴표 우회를 쓰면 될 것 같습니다. 풀이 따옴표를 \를 사용하면 우회가 가능합니다. 따옴표가 따옴표가 아니도록 이스케이프 된 문자로 만들고 그러면 id가 123\' and pw= 이 되니까 pw로 or 1=1을 하고 주석처리를 하면 문제가 풀립니다.
이번 포너블 스터디 과제도 assasin인데.. 여기까지 왔구나.. 분석 이번 문제도 짧습니다. 전달받는건 pw뿐이고 작은따옴표 사용이 막혀있습니다. 이번엔 like문을 우회하는 것 같네요. 근데.. 음 네. 작은 따옴표를 못 쓰니까 ' or '1=1 같은 것도 할 수가 없고. 근데 like면 %를 쓰던게 생각나는데, like에서 전 문제에서 브루트포싱을 할 때 %를 가지고 뒤 문자를 생략해서 검색했습니다. 이를테면 a%이면 a로 시작하는 모든 문자열 %b면 b로 끝나는 모든 문자열 %c%면 c가 들어가는 모든 문자열.. 이렇게요 . 음? 실수로 %만 입력하긴 했는데 생각해보니 브루트포싱..? 같기도 하네요. 풀이 처음에 걍 뭘 넣어도 admin이 안 뜨길래(?% 에 대해서만 검사함) guest를 띄워보..
저번 lob때도 말했지만 피곤하면 글에 하십시오체를 사용하지 않는 것 같네요. 새벽인 관계로 지금도 그냥 해라체 쓰겠습니다. 분석 이번엔 문제가 짧다. 이떻게 보면 배우는 점이 많을 문제같다. shit..(?)를 전달받는다. 어..음.. shit 길이가 1보다 크면 컷당한다..ㅠ shit는 공백과(공백이 들어간 문자열은 괜찮으려나) 개행, \r, \t를 차단한다. 공백 입력하면 풀리는 문제인가..? 1234를 가져오고.. where이 그냥 참인걸로 봐선 공백 우회문제인듯.. 일단 공백을 넣어보고자 합니다. 풀이 지난 문제를 통해서 배운걸로는 공백을 우회하기 위해서 %0a : \n %0d : \r %09 : \t 가 있었고 ()이나 +도 있었습니다. +는 공백과 똑같이 처리되었지만 그 외에 /**/ 주석도..
분석 이번 문제도 브루트포싱인듯 합니다. no랑 pw를 받습니다. no에서는 prob 등을 사용할 수 없고 pw에선 따옴표를 사용할 수 없습니다. 또 no에서는 따옴표, =, substr, ascii를 사용할 수 없습니다. 저번처럼 우회하면 될거같은데요.. 음.. 일단 pw에서는 가망이 안 보이니 admin으로 로그인 하는 것부터 해봅니다. https://los.rubiya.kr/chall/darkknight_5cfbc71e68e09f1b039a8204d1a81456.php?pw=123&no=1%20or%20id%20like%200x61646d696e =을 사용할 수 없으니 like를 사용하고 따옴표를 쓸 수가 없어서 그냥 hex값으로 넣어줍니다. 지난 문제를 풀면서 얻은 경험으로 우회했습니다. 그리고 ..
분석 이번에는 or, and, substr, =마저 다 사용이 안되네요. 따옴표는 됩니다.. 그리고 참 거짓을 알려주도록 되어있고.. 패스워드를 브루트포싱을 통해 알아내야 할 문제같습니다. substr이 안되면 like는 안되는건가..? 저번에 해보다가 실패했었는데요.. 그리고 id=admin에서 =이 걸려서 사용할 수가 없을 것 같습니다. 아 저번에 왜 like가 실패했는지 시도해보니 like 에 따옴표가 들어가야 하는군요. id = 'guest' and pw=''는 거짓입니다. pw like '%a%'가 참이라서 패스워드에 a가 들어있는 guest로 로그인이 된 겁니다. 그럼 이걸 가지고 admin도 되는지 테스트하고 브루트포싱으로 넘어갈 수 있을 것 같습니다. a 말고 b만 했는데 admin으로 접..
분석 이번 문제는 pw만 받습니다. id가 admin인거면 되니까 논리적으로 공격하는거네요. 따옴표나 다른 제약조건은 크게 없으므로 조작해보면 되겠습니다. 풀이 주석으로 뒤에 이상한 조건은 날리고, id=guest이고 pw가 '' 공백인건 없으니까 or로 해서 그냥 admin을 select 되도록 하면 됩니다.