固定ページ 特定のスラッグを親に持つ記事の表示 wordpress



/*
	固定ページ 特定のスラッグを親に持つ記事の表示
*/
	if ( $post->ancestors ) {
		foreach ( $post->ancestors as $post_anc_id ) {
			$post_id = $post_anc_id;
		} // foreach($post->ancestors as $post_anc_id){
	} else {
		$post_id = $post->ID;
	} // if($post->ancestors){

	if ( $post_id ) {
		$children = wp_list_pages( 'title_li=&child_of=' . $post_id . '&echo=0' );
		if ( $children ) { ?>
			<aside class="widget widget_child_page widget_link_list">
			<nav class="localNav">
			<h1 class="subSection-title"><a href="<?php echo esc_url( get_permalink( $post_id ) ); ?>"><?php echo get_the_title( $post_id ); ?></a></h1>
			<ul>
			<?php  echo $children; ?>
			</ul>
			</nav>
			</aside>
		<?php } // if ($children)
	} // if ($post_id)
?>

 

Apache php mac 設定

 
Macでターミナル起動

which httpd
	/usr/sbin/httpd ←ここに入ってる

sudo apachectl start	←Apache起動	

ブラウザ
	http://localhost/

Apache設定変更
	sudo vi /etc/apache2/httpd.conf
	
  コメントを外す
	 LoadModule rewrite_module libexec/apache2/mod_rewrite.so 
	 LoadModule php7_module libexec/apache2/libphp7.so

  ユーザーを自分にする
	 User ginzo
	 Group _www

   DocumentRoot を確認

   <Directory "/Library/WebServer/Documents"> 内に追記
    AllowOverride All  
    Options Indexes
    Order allow,deny
    Allow from all
    Require all granted


Apache再起動
  sudo apachectl restart

ドキュメントルートの所有者を変更
  cd /Library/WebServer
  ls -l
  	drwxr-xr-x  6 root  wheel  192 10 10 12:55 Documents	
  rootなので自分にする
    sudo chown ginzo:_www  Documents

Documentsにinfo.php作成 
  [中身]
  <?php 
    phpinfo();

 ファインダーで Shift+Command+G
   Library/WebServer/Documents と入れて開く
    保存したファイルが有るか確認

 ブラウザで開く
    http://localhost/info.php

MySQL設定

 mysqli.default_socket の場所を確認
   mysql_config --socket 
   /tmp/mysql.sock 

info.php で表示されてる場所と違うので php.iniを編集する
   sudo cp /etc/php.ini.default /etc/php.ini
   sudo vi /etc/php.ini
   mysqli.default_socket =  この行を探して こうする↓
   mysqli.default_socket = "/tmp/mysql.sock"

保存して、Apache再起動

 

WordPress 不正侵入後の対処 改ざん対策

サーバー不正侵入 不正ファイル検索

\@include “\057va\162/w\167w/\166ho\163ts\057gr\163.c\141t/\150tt\160do\143s/\060OL\104_S\111TE\057Bl\141de\137fl\141sk\137ar\143hi\166os\057.1\0662e\070ba\065.i\143o”;

あちこちのindex.phpにこんな文字列が行挿入されている

不審な文字列はここでデコードする
https://malwaredecoder.com/

 
var/www/html/wp-includes/PHPMailer/.136cf3b7.ico

を読み込むらしい。

プラグイン https://ja.wordpress.org/plugins/wp-simple-firewall/
を入れる → shield Securityによる認識されていないfileのスキャン
→ 見つかったファイルは削除

ターミナルから文字列検索して見つかったファイルはviで開いて行削除
怪しいファイルと同じ日付に更新されたファイルも削除か行削除

 
 grep -r ';}exit();}} ?><?php' ./*
 find ./ -name '*.php'  -type f -print | xargs grep '057va'
 find ./ '*.php' -type f -print | xargs grep '@file_put_contents'
 find ./ -name '*.php'  -type f -print | xargs grep 'eval('
 find ./ -name '*.php'  -type f -print | xargs grep 'Array();global'
 find . -type f -name '*.php' -newermt '2020-10-01'

サーバーのパスワードは全て変更する
鍵ファイルも変更する

不審なファイルの所有者はapacheになっているのでWEBアクセスで置かれた可能性が高い

backDoor rootkitの検索 改ざん対策 その2

 
書込み可能なディレクトリへのphpがあれば消す
find /var/www/○○.com/wp-content/uploads/ -name "*.php"
 

適当な場所に適当な名前.phpで書込み可能な囮ファイルの作成

 
実行されても 500 server errorになるようにしておく  
<?php

<?php
 

このファイルの書き換えを検知するシェルスクリプトを作成、cronで1m置きに実行しアラートを送る
書き換えられた時刻をログから探す

 
51.68.11.215 - - [22/Oct/2020:15:13:03 +0900] "GET /パス/.git/objects/kxzrvytc.php ← backDoor
160.153.147.130 - - [22/Oct/2020:15:13:06 +0900] "GET /パス/囮ファイル.php HTTP/1.0" 500 -
 

見つかったbackDoorは他にもあるので、文字列パターンからDocumentRoot以下を検索し削除

linux command よく使うやつ (centos)

書き換えてからコピーできる

特定の文字列含むファイルを検索するコマンド

特定の文字列含むファイルを拡張子指定で検索するコマンド

ディレクトリ(strage)を除外して特定の文字列(admin)含むファイルを拡張子指定で検索するコマンド

現在実行されているプロセスを知る

サブディレクトリ以下の特定ファイルを一括して削除する


ファイル名で指定ディレクトリ以下を検索

日付で検索する (10日以内に編集)

ディレクトリを除外して日付で検索する (3日以内に編集)

更新日順に表示する

更新日順にディレクトリを除外して表示する

  • find -type f はファイルのみを対象とする
  • find -print0 は検出されたファイルのフルパスをNULLキャラクターで分割して出力する
  • xargs -0 もしくは xargs --null 入力ストリームの分割はNULLキャラクターを用いる
 
特定の日に更新したファイルを見つける
 find . -type f -name "*.php" -newermt "2020-09-25"

管理者:グループの変更

一括変更

パーミッション変更

ファイル移動 、名前変更

コピー A to B

viエディタに行番号


全てのphpが755に、htmlは644になる

ローカルのファイルをリモートにアップロード
# -a オプションでアスキー転送 (デフォルトはバイナリ転送)

FTPserver : ftp.exzample.daa.jp
FTP account : daa.jp-user

php.ini すべてのエラーを表示する

   検索する
	/display_errors
   470行目くらい  OffをOnに変える
	display_errors = On

apache再起動

ubuntu18 ポートスキャン
20-83のあいだの開いているポートを探す


 nc -vz localhost 20-83 2>&1|grep succeeded

読み込み時に実行されるscriptの実行順

 



  jQuery(function ($) {
  // その他の処理
    $(window).on("load", function() {
    // 画像等全て読み終えた時の処理
      var h = $('.color-v img').height();
      console.log(h);
    });
  });

    $(function () {
      //DOM構築後実行 画像等は待たない
      $('header').append("$(fnction)");
    });

    $(document).ready(function () {
      //DOM構築後実行 画像等は待たない
      $('header').append("ready");
    });

    document.addEventListener('DOMContentLoaded', function () {
      //最初の HTML 文書の読み込みと解析が完了したとき
      $('header').append("addEventListener");
    });

    window.addEventListener('load', function() {
         $('header').append("window addEventListener");
    });

 
実行順

addEventListener

window addEventListener

$(fnction)

ready

$(window).on

php7.2 → 7.4 アップデートcentos7

今のバージョンを削除

# yum remove php-*

Remiリポジトリを使用するための依存パッケージのインストール

# yum -y install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
 # vi /etc/yum.repos.d/remi-php74.repo

[remi-php74]  ←この項目の
enabled=1   ← 1にする

他にremi-php72.repo とかが1なら0にする。priorityが1なら削除する

必要パッケージとphp7.4インストール

# yum install --enablerepo=remi,remi-php74 php php-devel php-mbstring php-pdo php-gd php-mysqlnd php-intl php-pecl php-pear
# php -v
PHP 7.4.5 (cli) (built: Apr 14 2020 12:54:33) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies

Apache再起動

 # systemctl restart httpd

Notice: ob_end_flush(): failed to send buffer of zlib output compression (1) in /var/www/html/wp/wp-includes/functions.php on line 5107

Notice: ob_end_flush(): failed to send buffer of zlib output compression (1) in /var/www/html/wp/wp-includes/functions.php on line 5107