본문 바로가기

SQL Injection39

lord of sql injection 40번 - poltergeist 이번 문제는 조금 헷갈렸는데 우선 데이터베이스에서 무언가를 찾아야 하는 문제이다. 그런데 다른 데이터베이스에 있는 flag_($hash) 테이블을 가져와야 한다고 되어있다. 즉, flag_% 테이블을 모든 데이터베이스를 뒤져서 가져와야 한다는 뜻이다. 우선 첫 시도는 union select를 해보았는데 이것으로 해답을 찾기는 어려울듯 했다. 그래서 구글링으로 찾아본 결과 sqlite에서 테이블을 불러오는 명령어를 찾아내었고 블라인드 SQLI와 같은 방식으로 하되 쿼리를 select sql from sqlite_master where tbl_name like 'flag_%' 으로 주게되면 sqlite_master 테이블에서 tbl_name, 즉 테이블명이 'flag_%' flag로 시작하는 모든 테이블을 .. 2023. 12. 22.
lord of sql injection 39번 - banshee 이번에는 pw를 찾는 문제다. 별다른것 없이 하던대로 블라인드 SQLI를 하면 될것같다. 우선 기본 쿼리를 넣었더니 잘 들어간다. length도 잘 들어간다 pw는 8자 substr함수를 이용해 글자를 찾는다. 프로그램을 이용하면 빠르다. 그렇게 알아낸 pw는 0313091b 2023. 12. 22.
lord of sql injection 38번 - manticore 이번문제도 전문제와 비슷하나 값을 넣으면 \가 붙어버리는 문제이다. 보다시피 전 문제처럼 admin'--+-를 넣으니 \가 뒤에 붙어 통과할수가 없다. 그래서 우선 id에 아무값을 넣고 닫은 뒤 뒤에 or 구문을 넣고 id에 admin을 넣어주면 될것같다. 이러면 우선 id값에 1\가 없을것이니 뒤의 or 구문에 나온 쿼리를 확인할 것이다. 그런데 뒤에 id='admin'을 할때 그대로 넣으면 \가 붙어버려서 우선 admin을 hex값으로 넣어보았는데 되지 않았다. 그래서 이번엔 char 함수를 이용해 글자를 하나씩 넣어보았다. char 함수를 이용해 넣으니 클리어되었다. 2023. 12. 22.
lord of sql injection 37번 - chupacabra 갑자기 엄청나게 쉬운 문제가 나왔다. 아무래도 문제 형태가 변경된거같은데 이제는 member 테이블에서 불러오고 sqlite open으로 chupacabra.db를 불러오는 형태로 문제가 출제될것 같다. 이번 문제 자체는 그냥 id='admin'을 불러오고 뒤를 주석처리하면 끝난다. 손쉽게 클리어했다. 2023. 12. 22.