본문 바로가기

분류 전체보기257

lord of sql injection 15번 - assassin 이번 문제도 색다른 문제이다. ' 싱글 쿼터가 필터링되기 때문에 기존처럼 뒤에 추가구문을 입력하는게 불가능하다. 그렇다는건 쿼리의 like를 이용해 admin 패스워드를 찾아내야 한다. like에 저번에 7%와 같은 구문을 썼던것과 같이 특수문자를 활용하여 글자를 유추할수 있는데 7%는 7로 시작하는 글자를 의미하고 %7%는 사이에 7이 끼어있는 글자 등을 의미한다. 그리고 _ 는 pw의 해당 자리를 의미한다. _를 8개 넣어보니 갑자기 Hello guest가 뜬것은 pw가 8자리 라는것을 의미한다. 그리고 _ 자리에 하나하나 번호를 채워가다 보니 guest pw가 나왔다. 하지만 우리에게 필요한것은 admin의 pw다 이를 찾으려면 guest와 admin의 pw에서 다른 부분을 찾아야한다. 그래서 _를.. 2023. 12. 22.
lord of sql injection 14번 - giant 이번엔 문제 형태가 바뀌었다. shit 값을 주어서 위 쿼리가 정상 작동하도록 만들어 주어야 하는데 공백을 넣어주어야 하는데 여러 공백 구문이 필터링 되어있다. 전에 사용하던 %09 즉 /t 도 필터링되어 있으므로 이번엔 %0b인 vertical tab 을 써보았다. 필터링이 되지 않았으므로 정상적으로 쿼리가 넘어가면서 클리어 2023. 12. 22.
lord of sql injection 13번 - bugbear 이제부터 필터링이 많아서 꽤나 복잡한 문제가 되었다. like가 필터링 되어서 in() 함수를 사용하였고, 공백또한 필터링되어 %09를 사용하였다. 그리고 우선 전에 like에서 했었던 숫자% 구문을 사용해 보았는데 잘 안되는거 같아 다른 방법을 써보았다. 그 전에 우선 길이부터 알아보기 위해 length() 함수로 길이를 검사해본 결과 8자리! mid(pw,1,1) 함수는 substr 함수와 같이 pw의 첫번째 자리를 추출해낸다. 이 함수를 이용해 숫자를 추측해 보았다. 첫번째 숫자는 5 쭉 찾되 in() 함수에서 문자열의 경우는 ""를 붙여서 찾아주어야 한다. 모두 찾은 결과 PW는 52dc3991 이었다. 2023. 12. 22.
lord of sql injection 12번 - darkknight 이번에도 블라인드 SQL 인젝션 문제입니다. 필터링이 상당히 많네요 substr에 ascii에 ' 등.. ?no=1 or id like "admin" and pw like "0%"--+- 이런 구문을 이용해주었습니다. 설명하자면 like로 = 필터링 우회 " 는 ' 필터링 우회 ascii와 substr을 우회할 수도 있지만 (\) 가 필터링 되어있는 것을 보시면 () 와 같이 함수 처리되는 구문이 필터링됩니다. 그래서 pw like "0%" 와 같은 구문을 사용했습니다. 패스워드가 0으로 시작하면 "0%" 라고 했을 때에만 Hello admin이 나옵니다. 숫자와 문자를 노가다로 계속 넣어가며 한글자 한글자씩 알아내면 됩니다. python 프로그램을 만들어서 자동으로 하는것이 훨씬 편하고 좋습니다. 최종.. 2023. 12. 21.