vared
vared - Blog
vared
전체 방문자
오늘
어제
  • 분류 전체보기 (138)
    • Study (0)
    • Project (0)
    • Paper Review (0)
    • Tool (0)
    • WriteUp (124)
      • Root-me.org (44)
      • LOS_rubiya (32)
      • Webhacking.kr (21)
      • DreamHack (9)
      • XCZ.kr (8)
      • HackCTF (10)
    • Miscellaneous (0)
    • Forensic-CheatSheet (10)

블로그 메뉴

  • Category

공지사항

  • Forensic-CheatSheet 오픈

인기 글

태그

  • File Execution
  • forensic-cheatsheet
  • trim
  • Los
  • shellbag forensics
  • shellbag
  • iconcahce
  • Artifacts
  • webhacking.kr
  • ssd
  • LNK FIile
  • forensic artifacts
  • Digital-Forensic
  • Windows Artifact
  • JavaScript
  • digital-forensics
  • Thumbcache
  • sql injection
  • Digital Forensic

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
vared

vared - Blog

WriteUp/Webhacking.kr

webhacking.kr : challenge 7

2020. 9. 11. 22:46

Admin page 딱 써있고 auth 라는 버튼이 있다.

소스를 보자

val 이라는 변수를 get 방식으로 가져오고 go 변수에 저장

아무값도 안넣으면 초기값으로 돌아가고,

 

필터링해서 go 변수에 2,-, +,from , _ , = , \\s, \*. \ 가 있으면 access denied!가나옴

 

이외의 경우에는 db에 접속한다.

접속할 때 rand라는 random 변수에 들어가는데

( )의 개수가 다른거 빼고는 다 똑같다. 저거를 이용해야 하는 문제겠지.

 

어느 rand를 가져오던지 result 값을 가져오게 되어있다.

그걸 data 변수에 저장한다.

data[0]이 1인 경우에 alert 창으로 Access_Denied가 뜨고,

data[0]이 존재하지 않으면 나가고, data[0]이 2인 경우에 문제가 풀린다.

________________________________________________________________________________

data[0]이 의미하는게 뭔지 궁금하다 -> 아마도 lv 값이겠거니 해야겠다. 즉 lv=2 를 만들어줘야

한다는 의미이다. 2가 필터링 당했으니까, 잘 해보자.

 

 $result=mysqli_query($db,"select lv from chall7 where lv=($go)") or die("nice try!");

 $result=mysqli_query($db,"select lv from chall7 where lv=() or id='admin'%23)") or die("nice try!");

 

일단 sql injection을 하기 위해서 ( ) 의 개수를 알아야 query 를 작성할 수 있다.

 

20프로의 확률로 작동하겠지만,,,,, 일단 넣어보자

 

2 필터링 때문에 ' 이랑 #이 다 걸린다. =도 필터링 된다.

2는 chr(50)으로 우회해주고

=는 like 함수를 이용해서 우회하자.

공백자체는 ( )로 필터링 해줘야되겠다.

 

주석은 ;%00 으로 우회해주자.

?val=0)union(select(chr(50))

 

 

 

 $result=mysqli_query($db,"select lv from chall7 where lv=(0)union(select(chr(50)))") or die("nice try!");

이렇게 되니까

select lv from chall7 where lv=(0) 이거랑

(select(chr(50))) 이거랑 테이블을 합쳐서 생각한다는 것.

앞에 꺼에서는 아무것도 없으니까

뒤에 query 에서 무언가가 나올꺼다.

 

 

저작자표시 (새창열림)

'WriteUp > Webhacking.kr' 카테고리의 다른 글

webhacking.kr : challenge 12  (0) 2020.09.11
webhacking.kr : challenge 8  (0) 2020.09.11
webhacking.kr : challenge 6  (0) 2020.09.11
webhacking.kr : challenge 5  (0) 2020.09.11
webhacking.kr : challenge 4  (0) 2020.09.11
    'WriteUp/Webhacking.kr' 카테고리의 다른 글
    • webhacking.kr : challenge 12
    • webhacking.kr : challenge 8
    • webhacking.kr : challenge 6
    • webhacking.kr : challenge 5
    vared
    vared

    티스토리툴바