공중 증발했다,,,
지금 marumaru 알림이 만드는데 b = list()tmp_res = dict()for i in td_data:i = str(i)tmp_res['link'] = "http://www.marumaru.in" + i[ i.find("href=\"") + 6 : i.find("href=\"") + 23 ]tmp_res['image'] = "http://www.marumaru.in" + i[ i.find("image:url(") + 10 : i.find(")\">") ]tmp = i[ i.find("
overflow 로 Top chunk 사이즈 주작치고 더큰걸 할당하면 sysmalloc 으로 인해 Top chunk 가 free 된다.
파이제일 할때 여러가지 알아두면 쓸모있는거 정리하려한다. 1. vars 이번 trustealth ctf pyjail3 낼때 알게 된건데, 개사기,,, __dict__ 가 있는 오브젝트나 함수를 인자로 넘겨주면, 어트리뷰트들을 다 dict 형으로 가져오게 한다. 즉 . 이나 _ 나 getattr 류가 막혔을때 어트리뷰트를 쓸수 있게 되는것이다. 물론 일부지만, __builtins__ 를 인자로 넘겨주면 built-in 함수를 전부 쓸 수 있다. 2. dir dir도 보통 dir(__builtins__) 해서 뭐있는지 보거나, string 우회로 많이 썼는데, 이게 locals() 대용이 되기도 한다. dir 을 막는 경우는 적으니까 상황에 따라 유용하게 쓸 수 있다. 3. "A""B" 이렇게 하면 stri..
그냥 푼것중에 좀 쓸만하다 대충 메모. Prision 인가 파이제일 문제 뭘 입력해도 값이 안오는데 문제 이름이나 설명보면 젤브레이크는 맞는거 같고 하다가, help() 를 쳤더니, 연결은 끊기지 않은 채로 아무것도 안나왔다. 그래서, help("print") 같은걸로 했는데 막 뭐가 나오기 시작했다. 그래서 아 실행 되는구나랑, 이걸로 필터링 체크가 가능하겠다 싶어서, help("os") 이런식으로 필터링 체크를 했고, getattr(__import__("o"+"s"),"sy"+"stem")("sh") 같은걸로 쉘땄다. READ FLAG CTF 끝나고 풀었다. 힌트로 _ 우회된다는데, CTF 시간때는 로컬에서 퍼징했을때 아무것도 안되서 포기하고 아카이브 했는데, 대회 끝나고 서버에다가 퍼징하니까 + 로..
2개 만들고 하나 free 하고 bk 에다가 사용할 주소 - 16 or 8 넣고 ( 64bit or 32bit ) 같은 크기로 할당해주면 사용할 주소에 main_arena의 영역주소가 저장된다. pwntw bookwriter 하려고 House of orange 보는데 이거 나오길래 일단 적어둔다
개쩔었다ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ secret of my heart 풀면서 운으로 발견했는데 ㄹㅇ루다가 어리둥절 하면서 중간에 호출된 memset 과 free 를 분석해봤다. memset 은 딱히 뭔가 없었다. 문제는 바로 free 였다. 엔터만 진짜 몇백번 친거 같은데, 중간에 _dl_catch_error 라는 함수로 들어갔다. ( pwntw 64bit libc 기준 offset : 0x142a6e ) 함수명으로 보아서 free 상 에러가 뜨면 들어가는 함수인거 같았다. 실제로 free 인자를 보았을때 에러가 났을 인자이다. 이 함수의 108 번째 줄을 보면 r9 를 call 한다. 이때 r9 를 따라가 보면 또 [rax + 0x140] 을 call 하는데 이때는 _dl_open 이라는것이 ca..
이거 2개를 엮어서 canary leak 이 불가한 상황에서 spirit 이 스택에서 터지는데 익스 어캐하지 같은 상황에서 쓸 수 있을거 같다. 먼저 spirit 으로 원하는 주소를 free list 에 밀어 넣어준다. 그리고 아무런 fastbin 이나 하나 밀어 넣고, 다시 spirit 으로 하나를 더 밀어넣어 준다. 그다음 할당은 스택영역에 할당될 것이다. 이떄 일반적인 fastbin dup 과 같이, 원하는 주소를 덮어주고 다시 할당, 할당, 할당 하고 마지막 할당 하면 원하는 주소로 받아낼 수 있다. 이렇게 한단계를 더 거쳐서 spirit 취약점만 있을때도 원하는 곳에 할당 받을 수 있을거 같다. 아마 될거같다,,,, 아직 안해봤다