반응형
소스코드 내 중요 정보 노출
보안 관련정보가 노출될 수 있는 취약점이다. 개발자의 실수로 사용자에게 노출되면 안 될 민감 정보를
그저 주석 처리하거나 display:none 따위로 감춰둔 경우가 해당된다. 페이지마다 소스코드를
직접 확인해볼 수도 있지만 스크립트로 숨겨진 요소들을 모두 드러내면 진단 시간을 절약할 수 있다.
진단 스크립트
// 주석 제거
document.write(document.querySelectorAll("html")[0].outerHTML.replaceAll('<!--','').replaceAll('-->','').replaceAll('/*','').replaceAll('*/','') )
// 숨겨진 요소 확인
let obj = document.querySelectorAll('*');
let len = obj.length;
for( let i=0; i<len; i++) {
if ( obj[i].style.display == "none" )
{
console.log(obj[i]);
obj[i].style.display='block';
} else if ( obj[i].style.visibility == "hidden" )
{
console.log(obj[i]);
obj[i].style.visibility="visible";
}
}
// 페이지 내 url 추출
let html = document.getElementsByTagName("HTML")[0].innerHTML;
let url_regex = /(https?:\/\/(?:www\.|(?!www))[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\.[^\s]{2,}|www\.[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\.[^\s]{2,}|https?:\/\/(?:www\.|(?!www))[a-zA-Z0-9]+\.[^\s]{2,}|www\.[a-zA-Z0-9]+\.[^\s]{2,})/gi;
let url = html.match(url_regex)
console.table(url);
진단용 html
js 생략.. <html lang="ko"><head><title>로그인 폼</title>
<meta charset="utf-8"> <body><center>
<form name="login_form">
<table border="1" align="center" width="300">
<tbody><tr>
<th colspan="2">로그인 하기</th>
</tr>
<tr>
<th>아이디</th>
<td><input type="text" size="12" maxlength="12" name="id" autofocus=""></td>
</tr>
<tr>
<th>비밀번호</th>
<td><input type="text" size="12" maxlength="16" name="pw"></td>
</tr>
<tr>
<th>비밀번호 확인</th>
<td><input type="text" size="12" maxlength="16" name="pwcheck"></td>
</tr>
<tr>
<td colspan="2"><center>
<input type="button" value="확인" onclick="login_func()">
<input type="button" style="display:none" value="guest 로그인">
</center></td>
</tr>
</tbody></table>
</form>
<table>
<tr><td> <!-- 관리자 계정 - admin/admin1234 --></td></tr>
<tr><td> <!-- hidden page1 : http://127.0.0.1:8941/web/index.jsp --></td></tr>
<tr><td> <!-- hidden page2 : https://127.0.0.1:11322/web/index.jsp --></td></tr>
<tr><td> <!-- Manager Page : http://127.0.0.1/adm_manager/ --></td></tr>
</center>
</body></html>
샘플용 HTML에서 진단 스크립트 실행 결과, 주석과 숨겨진 요소가 해제되면서
관리자 계정/중요페이지, guest 로그인 버튼이 노출되었다.
관리자 계정/중요페이지, guest 로그인 버튼이 노출되었다.
반응형
'해킹-보안' 카테고리의 다른 글
패스워드 사전 파일 생성 (0) | 2021.09.04 |
---|---|
무선 AP 숨겨진 SSID 확인 (0) | 2021.06.30 |
Genian NAC 에이전트 삭제 (0) | 2021.06.15 |
NAC(Network Access Control) 우회 (0) | 2021.05.13 |
nmap 포트스캔 (0) | 2021.05.06 |