P_Squirrel
Squirrel Hack
P_Squirrel
전체 방문자
오늘
어제
  • 분류 전체보기 (428)
    • Wargame(Web) (173)
      • Webhacking.kr Writeup (58)
      • DreamHack Writeup (64)
      • Lord of SQLInjection (40)
      • Websec.fr (2)
      • Webgoat (1)
      • G04T war (7)
    • Wargame(Pwnable) (94)
      • DreamHack Writeup (68)
      • pwnable.xyz Writeup (20)
      • G04T war (6)
    • Wargame(Reversing) (26)
      • DreamHack Writeup (26)
    • Wargame(crypto) (6)
      • DreamHack Writeup (6)
    • Wargame(DigitalForensic) (41)
      • CTF-D Writeup (28)
      • DreamHack Writeup (6)
      • Suninatas Writeup (7)
    • Wargame(misc) (4)
      • DreamHack Writeup (4)
    • DreamHack CTF (21)
    • ångstrom CTF (6)
    • AmateursCTF (2)
    • BDSec CTF (5)
    • Hspace war (1)
    • Reference (42)
      • Language_Study (10)
      • Pwnable_Study (24)
      • Web Hacking_Study (3)
      • Linux (2)
      • Windows Kernel (1)
    • 자격증 공부 (2)
      • 정보처리기사 (2)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 문

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
P_Squirrel

Squirrel Hack

Wargame(Web)/Lord of SQLInjection

(Lord of SQLInjection) cthulhu 문제

2022. 11. 30. 23:05

(Lord of SQLInjection) cthulhu 문제입니다.

코드를 먼저 살펴보면

필터링으로 prob _ . \ admin 을 필터링 하고 있습니다.

거기에 특별하게 보이는 코드가 보이지 않습니다.

 

위에 rubiya서버는 ModSecurity Core Rule Set v3.1.0의 level 1을 사용중이라는

이부분이 문제를 해결하기 위해 중요한 부분으로 보여

 

정확하게 이게 무엇인지 찾아보니

웹 애플리케이션 방화벽중 하나로 SQL인젝션과 LFI RFI등등 OWASP Top 10을 포함한 공격을

보호하는 방화벽이라고 합니다.

 

이를 우회하기 위해 CRS v3.1.0 Bypass를 키워드로 검색해보니

우회하는 방법이 정리된 자료를 찾을 수 있었습니다.

{ }나 @같은 기호를 이용해 우회하는 방법을 찾았습니다.

 

다시 문제로 돌아와서

 문제에서는 위의 Bypass방법으로 사용되는 { }와 @등을 필터링하지 않고 있으니

그대로 사용가능하며 문제를 해결하기 위해서는

id값을 존재하기만 하면되니

-1' <@=1 or {a 1}=1 or '

위 payload를 사용해 id값이 True가 되게 출력해준다면 문제가 해결됩니다.

일단 payload를 분석해보면

 

id='-1'<@=1 부분의 경우 '-1'<@1 은 null값이 나오게 됩니다..

즉 id=null 이되면서 다음 조건이 실행되고,

두번째 조건은 {a 1} =1 인데 이부분이 True가 나오게 됩니다.

이부분은 CRS를 우회하는 방법으로 설명헤주고 있는데 1=1과 동일하다고 합니다.

 

최종적으로 정리하면 아래와 같게 됩니다.

id=null or 1=1 or '

id부분에서 1=1로 True가 출력되며 or연산자로 인해 뒤에 오는 pw가 무시되니

id의 값이 True가 되게 됩니다.

 

위에서 정리한 payload를 문제사이트에 값을 전달해보면

문제가 해결되었습니다!


Reference

1. https://github.com/SpiderLabs/owasp-modsecurity-crs/issues/1181

 

Bypass the latest CRS v3.1.0 rules of SQL injection · Issue #1181 · SpiderLabs/owasp-modsecurity-crs

Type of Issue False Negative Description Per #1167, I wanna raise more FNs in this thread. Before getting into other FNs, I want to give out more information to #1167 so as to help the maintainers ...

github.com

 

'Wargame(Web) > Lord of SQLInjection' 카테고리의 다른 글

(Lord of SQLInjection) godzilla 문제  (0) 2022.12.01
(Lord of SQLInjection) death 문제  (0) 2022.12.01
(Lord of SQLInjection) alien 문제  (0) 2022.11.28
(Lord of SQLInjection) zombie 문제  (0) 2022.11.25
(Lord of SQLInjection) ouroboros 문제  (0) 2022.11.21
    'Wargame(Web)/Lord of SQLInjection' 카테고리의 다른 글
    • (Lord of SQLInjection) godzilla 문제
    • (Lord of SQLInjection) death 문제
    • (Lord of SQLInjection) alien 문제
    • (Lord of SQLInjection) zombie 문제
    P_Squirrel
    P_Squirrel

    티스토리툴바