0x.Wargame/lord of SQL injection
-
0x11.los Darkknight0x.Wargame/lord of SQL injection 2018. 1. 2. 22:47
0x11.los Darkknight 딴걸 하기 애매해서 한 문제 더 풀어봤다. 이번 문제에는 no라는 놈이 추가되었다. 그런데 preg_match를 보면 no와 pw가 다르다. 아마 no를 사용해서 정보를 알아내라고 하는 힌트같다. 테스트를 해보았는데 pw에서 걸러지는 것들이 no에서는 작동하였다. LIKE를 그 전 문제처럼 이용해서 admin으로 변경할 수 있었고, 길이가 8바이트라는 것도 알아내었다. 운좋게도 right(left)를 사용해서 1을 넣었는데 일치하였다. 정보를 다 찾아서 아래와 같이 패스워드를 입력하면 클리어!
-
0x10.los Golem0x.Wargame/lord of SQL injection 2018. 1. 2. 19:05
0x10.los Golem 어쩌다보니 새해에 쓰게 되는 첫 포스팅이 되었다. 무튼 시작하도록 하자. 아래와 같이 소스코드를 보나 or and 뿐만이 아니라 그동안 애용하였던 substr, =까지 막아버린다. 우리가 해야 할 일은 이 놈들을 우회하는 것이다. =같은 경우에는 > , < 로 우회를 할 수 있다. 또한 LIKE로도 우회할 수 있는데, 아래와 같이 사용하면 된다. 사용할 페이로드는 아래와 같이 LIKE를 사용할 것이다. 여기에서 &&를 쌩으로 적어버리니까 먹히질 않아서 인코딩을 사용하여 %26의 형태로 사용하였더니 아래와 같이 성공할 수 있었다. 가장 먼저 length를 LIKE와 사용해서 길이가 8인 것을 확인하였다. substr의 경우에는 right와 left를 활용하여 우회할 수 있다. 이..
-
0x06.los Orge0x.Wargame/lord of SQL injection 2017. 12. 21. 17:22
0x06.los Orge 다시 블라인드 인젝션 문제가 나왔다. and 와 or를 우회해야 한다는 것과 addslashes가 추가됬다는 것 외에 별 다른 특이점은 보이지 않는다. pw=%27%20%20||%20length(pw)=8%23 주석처리를 하고 길이를 확인해보니, 8자리인 것을 확인하였다. 이제 할 일은 각각의 자리를 찾는 것이다. pw=%27%20%20||%20substr(pw,1,1)=6%23 위 쿼리문을 실행시켜보면, 일치한다. 이렇게 다 조사를 진행하고 값을 넣으면 성공문구를 볼 수 있다.
-
0x04.los Wolfman0x.Wargame/lord of SQL injection 2017. 12. 20. 13:51
0x04.los Wolfman 오늘도 포스팅을 시작해본다. 소스 코드를 보니, 공백을 사용하지 못하게 한 부분이 눈에 띈다. 공백을 우회하고 id를 admin으로 설정하면 성공할 수 있는 문제였다. 공백을 우회하는 방법에는 대표적으로 6가지 정도가 있다. 1. TAB %09를 활용하여 공백 대신 tab을 사용하게 되면 공백처럼 사용할 수 있다. eg) pw=1%27%09or%09id=%27admin 2. Line Feed %09를 공백대신 사용하면 된다. eg) pw=1%27%0aor%0aid=%27admin 3. 괄호 여기서는 preg_match에 의해 사용할 수 없지만 괄호를 통해서도 우회가 가능하다. eg) pw=(1)or(id=%27admin%27) 4. 더하기 eg) pw=1+or+id=%27a..