Luv{Flag}
toLowerCase(), toUpperCase() 유니코드 우회
Web/Website security 2024. 4. 2. 06:01

이해를 돕기 위해 아래에 극단적인 코드 예시를 가져왔다. app.post('/login',function(req,resp){ var id = req.body.id if (id.toLowerCase()!=='hiroo' && id.toUpperCase() === "HIROO") { res.render('alert',{contents:'hello admin!',red:'/admin'}) } } 언뜻 보기엔 말이 되지 않는 코드, 통과할 수 없는 if 문 이지만, 이는 얼마든지 우회, 통과가 가능하다. toLowerCase(), toUpperCase() 함수를 사용하여 비교구문을 작성할때, 예상치 못한 결과가 도출될 수 있음에 주의하자. Javascript(혹은 여타 언어) 의 toLowerCase(), to..

[SSRF / LFI] Bypass WAF with url globbing
Web/Website security 2023. 11. 20. 14:46

URL globbing curl 을 사용할때 다음과 같은 오류를 겪어본 적이 있을 수 있다. url: (3) [globbing] error: bad range specification after pos 30 curl: (3) bad range in URL position 30 구글링 해보면 이에 대한 해결책으로 -g 나 -globoff 옵션을 사용하라고 하는데 이는 globbing 기능을 비활성화 하는 것이다. curl 은 비슷하고도 다양한 url 을 한번에, 쉽게 지정하기 위해 globbing을 제시한다. 예약 문자 [ ] 와 { } 를 사용하며 출력변수를 지정하고, 범위를 지정할 수 있다. curl "http://example.com/section[a-z].html" curl "http://examp..

article thumbnail
[Android] Glide 이미지 재로딩시 실패 오류 해결
Web/Java, Kotlin 2023. 10. 11. 22:41

간단한 Glide 사용법 Glide.with(this) .load(image_url) .into(Image) 이때 이미지 최초 로딩시에는 정상적으로 출력하지만 페이지 재요청시 이미지가 출력되어지지 않는 버그가 발생 Glide 는 기본적으로 이미지 URL 을 이용 디스크에 캐싱하여 빠른 이미지 로딩을 지원한다. 디스크에 캐싱된 이미지가 로딩되어 지지 않는 경우가 존재하는 듯 하여 이를 스킵해주어 진행한다. Glide.with(this) .load(it.result.localPhoto[0]) .skipMemoryCache(true) // 추가 .into(userImage) skipMemoryCache 는 기본적으로 false 임으로 true 설정해준다.

article thumbnail
[Android / Kotlin] Recyclerview + data binding 데이터 값에 따른 이미지 출력 여부 결정
Web/Java, Kotlin 2023. 9. 19. 22:29

최근 프로젝트에서 다음과 같은 페이지를 만들게 되었다. 해당 페이지는 Recyclerview 와 data binding 을 사용해서 구현중인데 이때 원하는 것은 다니엘 즉, 팀장의 프로필 사진에만 왕관 이미지를 추가하는 것이다. 만약 data binding 을 사용중이라면, 별다른 코틀린 코드 추가 없이 구현이 가능하다. 사용 할 Data class data class MemItem( val name : String, val is_leader : Int ) MemItem data class. 이때, is_leader 의 값이 1 일때 팀장, 0 일때를 팀원으로 하여 팀장 표시를 진행하기로 했다. MemberActivity 중 일부 override fun onCreate(savedInstanceState:..

article thumbnail
[Apache2] Apache proxy 설정, 서브 도메인 사용하기
Web 2023. 7. 24. 11:16

기존 PHP + Apache 를 사용해 웹서버를 사용하던 중 node 서버를 사용할 일이 생기게 되었다. express 의 포트 번호를 아파치와 분리하면 될 일 이지만, 여간 귀찮은게 아니므로 서브도메인과 프록시 설정을 통해 xxx.com 은 기존 PHP를 사용한 웹서버로, node.xxx.com 은 express 를 사용한 웹서버로 이동하게 하는 것이 목적이다. DNS CNAME 서브도메인 설정이 되어있다는 가정하에 진행하겠다. Reverse Proxy apache 경로 /etc/apache2/sites-available/ 아래에 node.xxx.com 에 대한 conf 파일을 작성해준다. http의 기본 포트는 80, express 의 포트번호는 9000으로 설정하였기 때문에, 다음과 같이 설정해준다..

보호되어 있는 글입니다. 내용을 보시려면 비밀번호를 입력해주세요.
article thumbnail
[NoSQL] Redis DB -1
Web/SQL, NoSQL 2023. 7. 17. 11:37

Redis 에서 발생 할 수 있는 취약점을 알아보기 전에, 먼저 redis 에 대해 알아보자 Redis 레디스는 In-Memory 데이터베이스 모든 데이터를 메모리에 저장하고 조회 디스크 기반 저장소의 메모리는 매우 작아서, disk 기반 메모리 기반 저장소(redis) 메모리에 상주하고 있기 때문에 자동적으로 휘발, disk는 옵셔널함 레디스는 캐쉬서버인가? ⇒ 캐시서버로 사용가능하지만 저장소임 디스크보다 매우 빠르다 data expire 가능(지정된 시간 이후에 만료가능) data 타입 ⇒ key-value 다양한 자료구조 지원 “/etc/redis/redis.conf” 레디스 설정 파일, requirepass는 패스워드를 지정 $sudo apt install redis-tools $sudo apt ..

article thumbnail
파이썬 requests 모듈 사용법 정리 (Python requests)
Web/Python 2023. 5. 17. 20:20

. PIP(파이썬 패키지 매니저)를 이용해 설치하고 $pip install requests requests 모듈을 import 하여 사용한다. import requests GET,POST 뿐만 아니라, HTTP Request 옵션 PUT, OPTIONS, HEAD, DELETE 들을 아주 간편하게 지원합니다. r = requests.get('https://exam.com') r = requests.put('https://exam.com', data={'key': 'value'}) r = requests.delete('https://exam.com/delete') r = requests.head('https://exam.com/get') r = requests.options('https://exam.com..

검색 태그

loading