Version Description
Download this release
Release Info
Developer | ryan |
Plugin | Exploit Scanner |
Version | 0.7 |
Comparing to | |
See all releases |
Code changes from version 0.6 to 0.7
- create-md5.sh +1 -1
- exploit-scanner.php +1137 -277
- hashes-2.8.6.php +728 -0
- readme.txt +12 -8
create-md5.sh
CHANGED
@@ -11,7 +11,7 @@ for i in `find $1 -type f`;
|
|
11 |
do
|
12 |
export filename=`echo $i|sed "s/$1\///"`
|
13 |
/bin/echo -n "'$filename' => '" >> /tmp/md5.txt;
|
14 |
-
export m=`cat $i |
|
15 |
echo "$m'," >> /tmp/md5.txt
|
16 |
echo $i done;
|
17 |
done
|
11 |
do
|
12 |
export filename=`echo $i|sed "s/$1\///"`
|
13 |
/bin/echo -n "'$filename' => '" >> /tmp/md5.txt;
|
14 |
+
export m=`cat $i | md5|awk '{print $1}'`
|
15 |
echo "$m'," >> /tmp/md5.txt
|
16 |
echo $i done;
|
17 |
done
|
exploit-scanner.php
CHANGED
@@ -3,339 +3,1199 @@
|
|
3 |
Plugin Name: WordPress Exploit Scanner
|
4 |
Plugin URI: http://ocaoimh.ie/exploit-scanner/
|
5 |
Description: Scans your WordPress site for possible exploits.
|
6 |
-
Version: 0.
|
7 |
Author: Donncha O Caoimh
|
8 |
Author URI: http://ocaoimh.ie/
|
9 |
*/
|
10 |
|
11 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
12 |
|
13 |
-
|
14 |
-
|
15 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
16 |
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
31 |
}
|
32 |
|
33 |
-
$
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
<form action='?page=exploit-admin-page&scan=all' method='POST'>
|
38 |
-
<table>
|
39 |
-
<tr><td>PHP Memory Limit:</td><td> <input type='text' size='3' name='memory_limit' value='128' />MB (Max memory used by PHP.)</td></tr>
|
40 |
-
<tr><td>Upper File size Limit:</td><td> <input type='text' size='3' name='filesize_limit' value='400' />KB (Skip files larger than this. Skipped files are listed at the end of scan.)</td></tr>
|
41 |
-
</table>
|
42 |
-
<?php wp_nonce_field( 'exploitscanner-scan_all' ); ?>
|
43 |
-
<input type='submit' value='Run the Scan' />
|
44 |
-
</form>
|
45 |
-
<p>If you run into memory problems, increase the PHP memory limit or reduce the file size limit.</p>
|
46 |
-
<div style='margin-top: 20px; text-align:center'>
|
47 |
-
<p>Or search the files on your site for a custom string:</p>
|
48 |
-
<form method="get">
|
49 |
-
<input type="hidden" name="page" value="exploit-admin-page" />
|
50 |
-
<input type="text" name="customscan" class="regular-text code" />
|
51 |
-
<?php wp_nonce_field( 'exploitscanner-scan_customstrings' ); ?>
|
52 |
-
<input type="submit" class="button exploit-scan-button" value="Search Files" />
|
53 |
-
</form>
|
54 |
-
</div>
|
55 |
-
<script type="text/javascript">
|
56 |
-
jQuery(document).ready(function($){
|
57 |
-
$('.exploit-scan-button').click( function() {
|
58 |
-
$('#loader').show();
|
59 |
-
});
|
60 |
-
});
|
61 |
-
</script>
|
62 |
-
<div id="loader" style="display:none; margin: 10px; padding: 10px; border: 1px solid #333; margin-top: 30px; text-align: center">
|
63 |
-
<p><strong>Searching your filesystem and database for hidden links, malicious JavaScript and other possible exploit code</strong><br /><br />Please wait while loading...</p>
|
64 |
-
<img src="<?php echo WP_PLUGIN_URL; ?>/exploit-scanner/loader.gif" height="16px" width="16px" alt="loading-icon" />
|
65 |
-
</div>
|
66 |
-
<h4>DISCLAIMER</h4>
|
67 |
-
<p>Unfortunately it's impossible to catch every hack, and it's also too easy to catch "false positives" or things that aren't hacks. If you have been hacked, this script may help you track down what files, comments or posts have been modified. On the other hand, if this script indicates your blog is clean, don't believe it. This is far from foolproof. </p>
|
68 |
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
<p style="text-align: center">MD5 of hashes-<?php echo $wp_version; ?>.php: <code><?php echo md5_file( dirname( __FILE__ ) . '/hashes-' . $wp_version . '.php' ); ?></code></p>
|
74 |
-
<?php } ?>
|
75 |
-
</div>
|
76 |
-
<?php }
|
77 |
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
if( is_array( $entries ) && !empty( $entries ) ) foreach ($entries as $entry) {
|
86 |
-
if ($entry != '.' && $entry != '..') {
|
87 |
-
if( !is_dir( $entry ) ) {
|
88 |
-
$filename = str_replace( ABSPATH, '', $entry );
|
89 |
-
if ( filesize( $entry ) > ( (int)$_POST[ 'filesize_limit' ] * 1024 ) ) {
|
90 |
-
if ( isset( $filehashes[$filename] ) ) {
|
91 |
-
$skipped_files[] = "$entry (core)";
|
92 |
} else {
|
93 |
-
$
|
|
|
|
|
|
|
94 |
}
|
95 |
-
continue;
|
96 |
}
|
|
|
|
|
|
|
97 |
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
|
|
|
|
109 |
}
|
110 |
-
if( isset( $filehashes[$filename] ) && $md5 != $filehashes[$filename] ) {
|
111 |
-
$modified_core_files[] = $entry;
|
112 |
-
}
|
113 |
-
} else {
|
114 |
-
exploitscanner_scan( $entry, $text, $filehashes, $skipped_files );
|
115 |
}
|
116 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
117 |
}
|
|
|
118 |
}
|
119 |
-
}
|
120 |
|
121 |
-
function
|
122 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
123 |
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
|
|
|
|
|
|
142 |
}
|
143 |
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
150 |
}
|
151 |
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
164 |
}
|
165 |
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
175 |
}
|
176 |
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
186 |
}
|
187 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
188 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
189 |
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
190 |
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
196 |
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
209 |
}
|
|
|
|
|
210 |
}
|
211 |
-
}
|
212 |
|
213 |
-
|
214 |
-
global $wpdb;
|
215 |
|
216 |
-
|
217 |
-
|
218 |
-
|
219 |
-
|
220 |
-
|
221 |
-
|
222 |
-
|
|
|
223 |
}
|
224 |
}
|
225 |
-
|
226 |
-
|
227 |
-
|
228 |
-
|
229 |
-
|
230 |
-
|
231 |
-
|
232 |
-
|
233 |
-
|
234 |
-
|
235 |
-
|
236 |
-
|
237 |
-
|
238 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
239 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
240 |
}
|
241 |
|
242 |
-
|
243 |
-
|
244 |
-
|
245 |
-
|
246 |
-
|
247 |
-
|
248 |
-
|
249 |
-
|
250 |
-
|
251 |
-
|
252 |
-
if ( $options )
|
253 |
-
$suspect_options[$exploit_text] = $options;
|
254 |
}
|
255 |
-
|
256 |
-
|
257 |
-
|
258 |
-
|
259 |
-
|
260 |
-
|
261 |
-
|
262 |
-
|
263 |
-
|
264 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
265 |
}
|
266 |
-
|
267 |
-
|
268 |
-
|
|
|
|
|
269 |
}
|
270 |
|
271 |
-
|
272 |
-
|
273 |
-
if ( $posts )
|
274 |
-
$suspect_posts[$exploit_text] = $posts;
|
275 |
-
$comments = $wpdb->get_results( "SELECT * FROM {$wpdb->comments} WHERE comment_content LIKE '%{$exploit_text}%'" );
|
276 |
-
if ( $comments )
|
277 |
-
$suspect_comments[$exploit_text] = $comments;
|
278 |
}
|
279 |
-
|
280 |
-
|
281 |
-
|
282 |
-
|
283 |
-
|
284 |
-
|
285 |
-
|
286 |
-
|
287 |
-
|
288 |
-
|
289 |
-
|
290 |
-
|
291 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
292 |
}
|
293 |
}
|
294 |
-
|
295 |
-
|
296 |
-
|
297 |
-
|
298 |
-
|
299 |
-
|
300 |
-
|
301 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
302 |
}
|
303 |
-
|
304 |
-
|
305 |
-
|
306 |
-
|
|
|
|
|
|
|
307 |
}
|
308 |
|
309 |
-
|
310 |
-
|
311 |
-
|
312 |
-
|
313 |
-
|
314 |
-
|
315 |
-
<
|
316 |
-
|
317 |
-
|
318 |
-
|
319 |
-
|
320 |
-
|
321 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
322 |
|
323 |
-
$sort_users = 'user_nicename';
|
324 |
-
$user_ids = $wpdb->get_col( $wpdb->prepare( "SELECT $wpdb->users.ID FROM $wpdb->users ORDER BY %s ASC", $sort_users ) );
|
325 |
|
326 |
-
|
327 |
-
$
|
328 |
-
if ( $
|
329 |
-
|
330 |
-
|
331 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
332 |
}
|
333 |
-
echo '</td><td>' . $user->user_email . '</td></tr>';
|
334 |
}
|
335 |
-
|
336 |
-
|
337 |
-
|
338 |
|
339 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
340 |
}
|
341 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
Plugin Name: WordPress Exploit Scanner
|
4 |
Plugin URI: http://ocaoimh.ie/exploit-scanner/
|
5 |
Description: Scans your WordPress site for possible exploits.
|
6 |
+
Version: 0.7
|
7 |
Author: Donncha O Caoimh
|
8 |
Author URI: http://ocaoimh.ie/
|
9 |
*/
|
10 |
|
11 |
+
/**
|
12 |
+
* Exploit_Scanner class to encapsulate the scanning functions to keep them portable
|
13 |
+
*
|
14 |
+
* @author: Thorsten Ott
|
15 |
+
* @since: 0.7
|
16 |
+
* @todo: get rules and hashes from external source in encrypted format to avoid manipulation and keep them up to date
|
17 |
+
*/
|
18 |
+
class Exploit_Scanner
|
19 |
+
{
|
20 |
+
var $_path = '';
|
21 |
+
var $_init_path = '';
|
22 |
+
var $_exploit_scanner_filename = 'exploit-scanner-v2.php';
|
23 |
+
var $_prepared_patterns = array();
|
24 |
+
var $_pattern_descriptions = array();
|
25 |
+
var $patterns = array();
|
26 |
+
var $_search_results = array();
|
27 |
+
var $_whitelist_hits = array();
|
28 |
+
var $inaccessible = array();
|
29 |
|
30 |
+
var $file_size_limit = 50;
|
31 |
+
|
32 |
+
var $scan_source = 'file';
|
33 |
+
var $allowed_extensions = array();
|
34 |
+
|
35 |
+
var $changed_core_files = array();
|
36 |
+
var $skipped_core_files = array();
|
37 |
+
var $all_core_files = array();
|
38 |
+
|
39 |
+
var $filehashes = array();
|
40 |
+
var $skip_files = array();
|
41 |
+
|
42 |
+
var $display_severities = array( 'raw', 'blocker', 'severe', 'warning' );
|
43 |
+
|
44 |
+
var $_severities = array( 'blocker', 'severe', 'warning', 'note' );
|
45 |
+
|
46 |
+
/**
|
47 |
+
* Definition of scan groups and the functions they run
|
48 |
+
*/
|
49 |
+
var $_possible_scans = array( 'file_scan' => array( 'hash_file_scan', 'file_permission_scan', 'file_scan' ), 'db_scan' => array ( 'db_scan_plugins', 'db_scan_options', 'db_scan_posts', 'db_scan_comments' ), 'info' => array( 'list_admins', 'get_serverinfo' ) );
|
50 |
+
/**
|
51 |
+
* Better descriptions for each of the scans
|
52 |
+
*/
|
53 |
+
var $_scan_names = array( 'hash_file_scan' => 'MD5 Checksum Test', 'file_permission_scan' => 'Scan file permissions', 'file_scan' => 'Filesystem pattern scan', 'db_scan_plugins' => 'Database active plugins test', 'db_scan_options' => 'Database options scan', 'db_scan_posts' => 'Database post scan', 'db_scan_comments' => 'Database comment scan', 'list_admins' => 'Administrator List', 'get_serverinfo' => 'Basic server information' );
|
54 |
+
var $memory_limit = '';
|
55 |
+
|
56 |
+
var $php_user = '';
|
57 |
+
|
58 |
+
function Exploit_Scanner( $path )
|
59 |
+
{
|
60 |
+
$this->_path = $this->format_directory_name( $path );
|
61 |
+
$this->_init_path = $this->_path;
|
62 |
+
|
63 |
+
set_time_limit(300);
|
64 |
+
|
65 |
+
/**
|
66 |
+
* Definition of restricted commands
|
67 |
+
* "command_name" => array( "level" => "severity as defined in $_severities", "note" => "Free text note describing the problem" )
|
68 |
+
*/
|
69 |
+
$this->restricted_commands = array(
|
70 |
+
// wordpress functions
|
71 |
+
//
|
72 |
|
73 |
+
"remove_filter" => array( "level" => "Warning", "note" => "Removing filters" ),
|
74 |
+
"remove_action" => array( "level" => "Warning", "note" => "Removing actions" ),
|
75 |
+
"add_filter" => array( "level" => "Note", "note" => "Altering filters" ),
|
76 |
+
"add_action" => array( "level" => "Note", "note" => "Altering actions" ),
|
77 |
+
|
78 |
+
// filesystem functions
|
79 |
+
//
|
80 |
+
|
81 |
+
//"basename" => array( "level" => "Note", "note" => "Returns filename component of path" ),
|
82 |
+
"chgrp" => array( "level" => "Blocker", "note" => "Changes file group" ),
|
83 |
+
"chmod" => array( "level" => "Blocker", "note" => "Changes file mode" ),
|
84 |
+
"chown" => array( "level" => "Blocker", "note" => "Changes file owner" ),
|
85 |
+
"clearstatcache" => array( "level" => "Warning", "note" => "Clears file status cache" ),
|
86 |
+
"copy" => array( "level" => "Blocker", "note" => "Copies file" ),
|
87 |
+
"delete" => array( "level" => "Blocker", "note" => "See unlink or unset" ),
|
88 |
+
//"dirname" => array( "level" => "Warning", "note" => "Returns directory name component of path" ),
|
89 |
+
"disk_free_space" => array( "level" => "Warning", "note" => "Returns available space in directory" ),
|
90 |
+
"disk_total_space" => array( "level" => "Warning", "note" => "Returns the total size of a directory" ),
|
91 |
+
"diskfreespace" => array( "level" => "Warning", "note" => "Alias of disk_free_space" ),
|
92 |
+
"fclose" => array( "level" => "Warning", "note" => "Closes an open file pointer" ),
|
93 |
+
"feof" => array( "level" => "Warning", "note" => "Tests for end-of-file on a file pointer" ),
|
94 |
+
"fflush" => array( "level" => "Blocker", "note" => "Flushes the output to a file" ),
|
95 |
+
"fgetc" => array( "level" => "Severe", "note" => "Gets character from file pointer" ),
|
96 |
+
"fgetcsv" => array( "level" => "Severe", "note" => "Gets line from file pointer and parse for CSV fields" ),
|
97 |
+
"fgets" => array( "level" => "Severe", "note" => "Gets line from file pointer" ),
|
98 |
+
"fgetss" => array( "level" => "Severe", "note" => "Gets line from file pointer and strip HTML tags" ),
|
99 |
+
//"file_exists" => array( "level" => "Warning", "note" => "Checks whether a file or directory exists" ),
|
100 |
+
"file_get_contents" => array( "level" => "Severe", "note" => "Reads entire file into a string" ),
|
101 |
+
"file_put_contents" => array( "level" => "Blocker", "note" => "Write a string to a file" ),
|
102 |
+
"file" => array( "level" => "Severe", "note" => "Reads entire file into an array" ),
|
103 |
+
"fileatime" => array( "level" => "Warning", "note" => "Gets last access time of file" ),
|
104 |
+
"filectime" => array( "level" => "Warning", "note" => "Gets inode change time of file" ),
|
105 |
+
"filegroup" => array( "level" => "Warning", "note" => "Gets file group" ),
|
106 |
+
"fileinode" => array( "level" => "Warning", "note" => "Gets file inode" ),
|
107 |
+
"filemtime" => array( "level" => "Warning", "note" => "Gets file modification time" ),
|
108 |
+
"fileowner" => array( "level" => "Warning", "note" => "Gets file owner" ),
|
109 |
+
"fileperms" => array( "level" => "Warning", "note" => "Gets file permissions" ),
|
110 |
+
"filesize" => array( "level" => "Warning", "note" => "Gets file size" ),
|
111 |
+
"filetype" => array( "level" => "Warning", "note" => "Gets file type" ),
|
112 |
+
"flock" => array( "level" => "Warning", "note" => "Portable advisory file locking" ),
|
113 |
+
"fnmatch" => array( "level" => "Warning", "note" => "Match filename against a pattern" ),
|
114 |
+
"fopen" => array( "level" => "Blocker", "note" => "Opens file or URL" ),
|
115 |
+
"fpassthru" => array( "level" => "Severe", "note" => "Output all remaining data on a file pointer" ),
|
116 |
+
"fputcsv" => array( "level" => "Blocker", "note" => "Format line as CSV and write to file pointer" ),
|
117 |
+
"fputs" => array( "level" => "Blocker", "note" => "Alias of fwrite" ),
|
118 |
+
"fread" => array( "level" => "Severe", "note" => "Binary-safe file read" ),
|
119 |
+
"fscanf" => array( "level" => "Severe", "note" => "Parses input from a file according to a format" ),
|
120 |
+
"fseek" => array( "level" => "Severe", "note" => "Seeks on a file pointer" ),
|
121 |
+
"fstat" => array( "level" => "Warning", "note" => "Gets information about a file using an open file pointer" ),
|
122 |
+
"ftell" => array( "level" => "Warning", "note" => "Returns the current position of the file read/write pointer" ),
|
123 |
+
"ftruncate" => array( "level" => "Severe", "note" => "Truncates a file to a given length" ),
|
124 |
+
"fwrite" => array( "level" => "Blocker", "note" => "Binary-safe file write" ),
|
125 |
+
"glob" => array( "level" => "Warning", "note" => "Find pathnames matching a pattern" ),
|
126 |
+
"is_dir" => array( "level" => "Warning", "note" => "Tells whether the filename is a directory" ),
|
127 |
+
"is_executable" => array( "level" => "Warning", "note" => "Tells whether the filename is executable" ),
|
128 |
+
"is_file" => array( "level" => "Warning", "note" => "Tells whether the filename is a regular file" ),
|
129 |
+
"is_link" => array( "level" => "Warning", "note" => "Tells whether the filename is a symbolic link" ),
|
130 |
+
//"is_readable" => array( "level" => "Warning", "note" => "Tells whether the filename is readable" ),
|
131 |
+
"is_uploaded_file" => array( "level" => "Warning", "note" => "Tells whether the file was uploaded via HTTP POST" ),
|
132 |
+
"is_writable" => array( "level" => "Warning", "note" => "Tells whether the filename is writable" ),
|
133 |
+
"is_writeable" => array( "level" => "Warning", "note" => "Alias of is_writable" ),
|
134 |
+
"lchgrp" => array( "level" => "Blocker", "note" => "Changes group ownership of symlink" ),
|
135 |
+
"lchown" => array( "level" => "Blocker", "note" => "Changes user ownership of symlink" ),
|
136 |
+
"link" => array( "level" => "Blocker", "note" => "Create a hard link" ),
|
137 |
+
"linkinfo" => array( "level" => "Warning", "note" => "Gets information about a link" ),
|
138 |
+
"lstat" => array( "level" => "Warning", "note" => "Gives information about a file or symbolic link" ),
|
139 |
+
"mkdir" => array( "level" => "Blocker", "note" => "Makes directory" ),
|
140 |
+
"move_uploaded_file" => array( "level" => "Severe", "note" => "Moves an uploaded file to a new location" ),
|
141 |
+
"parse_ini_file" => array( "level" => "Severe", "note" => "Parse a configuration file" ),
|
142 |
+
"parse_ini_string" => array( "level" => "Severe", "note" => "Parse a configuration string" ),
|
143 |
+
"pathinfo" => array( "level" => "Warning", "note" => "Returns information about a file path" ),
|
144 |
+
"pclose" => array( "level" => "Warning", "note" => "Closes process file pointer" ),
|
145 |
+
"popen" => array( "level" => "Blocker", "note" => "Opens process file pointer" ),
|
146 |
+
"readfile" => array( "level" => "Severe", "note" => "Outputs a file" ),
|
147 |
+
"readlink" => array( "level" => "Severe", "note" => "Returns the target of a symbolic link" ),
|
148 |
+
"realpath" => array( "level" => "Severe", "note" => "Returns canonicalized absolute pathname" ),
|
149 |
+
"rename" => array( "level" => "Blocker", "note" => "Renames a file or directory" ),
|
150 |
+
"rewind" => array( "level" => "Warning", "note" => "Rewind the position of a file pointer" ),
|
151 |
+
"rmdir" => array( "level" => "Blocker", "note" => "Removes directory" ),
|
152 |
+
"set_file_buffer" => array( "level" => "Warning", "note" => "Alias of stream_set_write_buffer" ),
|
153 |
+
"stat" => array( "level" => "Warning", "note" => "Gives information about a file" ),
|
154 |
+
"symlink" => array( "level" => "Blocker", "note" => "Creates a symbolic link" ),
|
155 |
+
"tempnam" => array( "level" => "Severe", "note" => "Create file with unique file name" ),
|
156 |
+
"tmpfile" => array( "level" => "Blocker", "note" => "Creates a temporary file" ),
|
157 |
+
"touch" => array( "level" => "Blocker", "note" => "Sets access and modification time of file" ),
|
158 |
+
"umask" => array( "level" => "Blocker", "note" => "Changes the current umask" ),
|
159 |
+
"unlink" => array( "level" => "Blocker", "note" => "Deletes a file" ),
|
160 |
+
|
161 |
+
// process control functions
|
162 |
+
//
|
163 |
+
"pcntl_alarm" => array( "level" => "Blocker", "note" => "Set an alarm clock for delivery of a signal" ),
|
164 |
+
"pcntl_exec" => array( "level" => "Blocker", "note" => "Executes specified program in current process space" ),
|
165 |
+
"pcntl_fork" => array( "level" => "Blocker", "note" => "Forks the currently running process" ),
|
166 |
+
"pcntl_getpriority" => array( "level" => "Blocker", "note" => "Get the priority of any process" ),
|
167 |
+
"pcntl_setpriority" => array( "level" => "Blocker", "note" => "Change the priority of any process" ),
|
168 |
+
"pcntl_signal_dispatch" => array( "level" => "Blocker", "note" => "Calls signal handlers for pending signals" ),
|
169 |
+
"pcntl_signal" => array( "level" => "Blocker", "note" => "Installs a signal handler" ),
|
170 |
+
"pcntl_sigprocmask" => array( "level" => "Blocker", "note" => "Sets and retrieves blocked signals" ),
|
171 |
+
"pcntl_sigtimedwait" => array( "level" => "Blocker", "note" => "Waits for signals, with a timeout" ),
|
172 |
+
"pcntl_sigwaitinfo" => array( "level" => "Blocker", "note" => "Waits for signals" ),
|
173 |
+
"pcntl_wait" => array( "level" => "Blocker", "note" => "Waits on or returns the status of a forked child" ),
|
174 |
+
"pcntl_waitpid" => array( "level" => "Blocker", "note" => "Waits on or returns the status of a forked child" ),
|
175 |
+
"pcntl_wexitstatus" => array( "level" => "Blocker", "note" => "Returns the return code of a terminated child" ),
|
176 |
+
"pcntl_wifexited" => array( "level" => "Blocker", "note" => "Checks if status code represents a normal exit" ),
|
177 |
+
"pcntl_wifsignaled" => array( "level" => "Blocker", "note" => "Checks whether the status code represents a termination due to a signal" ),
|
178 |
+
"pcntl_wifstopped" => array( "level" => "Blocker", "note" => "Checks whether the child process is currently stopped" ),
|
179 |
+
"pcntl_wstopsig" => array( "level" => "Blocker", "note" => "Returns the signal which caused the child to stop" ),
|
180 |
+
"pcntl_wtermsig" => array( "level" => "Blocker", "note" => "Returns the signal which caused the child to terminate" ),
|
181 |
+
|
182 |
+
// system functions
|
183 |
+
//
|
184 |
+
"shell_exec" => array( "level" => "Blocker", "note" => "Executes a server command like ls, cd, wget, etc. This may be a script used by hackers." ),
|
185 |
+
"eval" => array( "level" => "Blocker", "note" => "Could be JavaScript code used to hide code inserted by a hacker." ),
|
186 |
+
|
187 |
+
// other suspicious functions
|
188 |
+
'base64_decode' => array( "level" => "Severe", "note" => "Often used by malicous scripts to decode previously encoded data, such as malicious URLs" ),
|
189 |
+
|
190 |
+
);
|
191 |
+
/**
|
192 |
+
* Definition of restricted patterns
|
193 |
+
* "preg_match pattern" => array( "level" => "severity as defined in $_severities", "note" => "Free text note describing the problem" )
|
194 |
+
*/
|
195 |
+
$this->restricted_patterns = array(
|
196 |
+
// Direct Database queries
|
197 |
+
"/(\\\$wpdb->|mysql_|WP_Query)+.+(ALTER)+\s+/msiU" => array( "level" => "Severe", "note" => "Possible database table alteration" ),
|
198 |
+
"/(\\\$wpdb->|mysql_|WP_Query)+.+(CREATE)+\s+/msiU" => array( "level" => "Severe", "note" => "Possible database table creation" ),
|
199 |
+
"/(\\\$wpdb->|mysql_|WP_Query)+.+(DROP)+\s+/msiU" => array( "level" => "Severe", "note" => "Possible database table deletion" ),
|
200 |
+
"/(\\\$wpdb->|mysql_|WP_Query)+.+(DELETE)+\s+(FROM)+\s+/msiU" => array( "level" => "Warning", "note" => "Direct database delete query" ),
|
201 |
+
"/(\\\$wpdb->|mysql_|WP_Query)+.+(UPDATE)+\s+/msiU" => array( "level" => "Warning", "note" => "Direct database update query" ),
|
202 |
+
"/(\\\$wpdb->|mysql_|WP_Query)+.+(SELECT)+\s.+/msiU" => array( "level" => "Note", "note" => "Direct Database select query" ),
|
203 |
+
"/(^GLOBAL)(\\\$wpdb->|mysql_|WP_Query)+/msiU" => array( "level" => "Note", "note" => "Possible direct database query" ),
|
204 |
+
|
205 |
+
// Output of variables
|
206 |
+
"/(echo|print|\<\?\=)+.+(\\\$GLOBALS|\\\$_SERVER|\\\$_GET|\\\$_REQUEST|\\\$_POST)+/msiU" => array( "level" => "Warning", "note" => "Possible output of restricted variables" ),
|
207 |
+
"/(echo|print|\<\?\=)+.+(get_search_query)+/msiU" => array( "level" => "Severe", "note" => "Output of search query" ),
|
208 |
+
|
209 |
+
// Possible exploit patterns
|
210 |
+
"/<iframe/msiU" => array( "level" => "Severe", "note" => "iframes can sometimes be used by hackers to load their own adverts and code on your site." ),
|
211 |
+
"/visibility:hidden/msiU" => array( "level" => "Warning", "note" => "CSS styling used to hide parts of a web page (can be used legitimately)" ),
|
212 |
+
"/display:none/msiU" => array( "level" => "Warning", "note" => "CSS styling used to hide parts of a web page (is often used legitimately, be concerned if it's used to hide a link)" ),
|
213 |
+
"/display: none/msiU" => array( "level" => "Warning", "note" => "CSS styling used to hide parts of a web page (is often used legitimately, be concerned if it's used to hide a link)" ),
|
214 |
+
"/ShellBOT/msiU" => array( "level" => "Blocker", "note" => "This may be a script used by hackers to get control of your server." ),
|
215 |
+
"/uname -a/msiU" => array( "level" => "Blocker", "note" => "Tells a hacker what operating system your server is running" ),
|
216 |
+
"/YW55cmVzdWx0cy5uZXQ=/msiU" => array( "level" => "Blocker", "note" => "Base64 encoded text found in PHP code that redirects visitors from Google." ),
|
217 |
+
"/eval\(/msiU" => array( "level" => "Severe", "note" => "Could be JavaScript code used to hide code inserted by a hacker." ),
|
218 |
+
"/String\.fromCharCode/msiU" => array( "level" => "Warning", "note" => "JavaScript code used to hide suspicious code, but can also be legitimate code." ),
|
219 |
+
"/\$_COOKIE\[\"yahg\"\]/msiU" => array( "level" => "Blocker", "note" => "YAHG Googlerank.info exploit code. See <a href='http://creativebriefing.com/wordpress-hacked-googlerankinfo/'>here</a> for further info." ),
|
220 |
+
"/ekibastos/msiU" => array( "level" => "Blocker", "note" => "Possible Ekibastos attack. See <a href='http://ocaoimh.ie/did-your-wordpress-site-get-hacked/'>here</a> for more info." ),
|
221 |
+
"/script language=\"JavaScript\"/msiU" => array( "level" => "Severe", "note" => "Could be JavaScript code used to hide code inserted by a hacker." ),
|
222 |
+
"/eval\s*\(\s*base64_decode\s*\(/msiU" => array( "level" => "Blocker", "note" => "Most likely used by malicous scripts to decode previously encoded data and execute it" ),
|
223 |
+
"/<!--\s*[A-Za-z0-9]+\s*--><\?php/msiU" => array( "level" => "Blocker", "note" => "Frequently used by Wordpress, MediaTemple, and an Injection Attack. See <a href='http://www.kyle-brady.com/2009/11/07/wordpress-mediatemple-and-an-injection-attack/'>here</a>" ),
|
224 |
+
|
225 |
+
);
|
226 |
+
/**
|
227 |
+
* Definition of whitelist patterns (patterns that need to be existing somewhere in the path)
|
228 |
+
* "preg_match pattern" => array( "level" => "severity as defined in $_severities", "note" => "Free text note describing the problem" )
|
229 |
+
*/
|
230 |
+
$this->whitelist_patterns = array(
|
231 |
+
"/(wp_head)+\s?\(\)/msiU" => array( "level" => "Severe", "note" => "wp_head() call missing" ),
|
232 |
+
"/(wp_footer)+\s?\(\)/msiU" => array( "level" => "Severe", "note" => "wp_footer() call missing" ),
|
233 |
+
);
|
234 |
+
|
235 |
+
/**
|
236 |
+
* Definition files that should be skipped
|
237 |
+
*/
|
238 |
+
$this->skip_files = array(
|
239 |
+
'.svn', // skip .svn directories
|
240 |
+
str_replace( ABSPATH, '', basename( __FILE__ ) ), // skip the current file
|
241 |
+
);
|
242 |
+
}
|
243 |
+
|
244 |
+
|
245 |
+
function format_directory_name( $dir )
|
246 |
+
{
|
247 |
+
$dir = preg_split( '/\/+$/', $dir, -1, PREG_SPLIT_NO_EMPTY );
|
248 |
+
return $dir[0];
|
249 |
+
}
|
250 |
+
|
251 |
+
function search_file_for_pattern( $file )
|
252 |
+
{
|
253 |
+
|
254 |
+
if ( !is_readable( $file ) ) {
|
255 |
+
if ( !isset( $this->inaccessible['files']['inaccessible'] ) || !in_array( $file, $this->inaccessible['files']['inaccessible'] ) ) {
|
256 |
+
$this->inaccessible['files']['inaccessible'][] = $file;
|
257 |
+
}
|
258 |
+
return;
|
259 |
+
}
|
260 |
+
|
261 |
+
if ( !file( $file ) ) {
|
262 |
+
if ( !isset( $this->inaccessible['files']['empty'] ) || !in_array( $file, $this->inaccessible['files']['empty'] ) ) {
|
263 |
+
$this->inaccessible['files']['empty'][] = $file;
|
264 |
+
}
|
265 |
+
return;
|
266 |
}
|
267 |
|
268 |
+
if ( filesize( $file ) > ( (int) $this->file_size_limit * 1024 ) ) {
|
269 |
+
$this->add_result( $file, '', '', '', 'file skipped due to filesize', 'Note', 'file_scan' );
|
270 |
+
return;
|
271 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
272 |
|
273 |
+
if ( in_array( $file, $this->all_core_files ) && !in_array( $file, $this->changed_core_files ) ) {
|
274 |
+
$this->add_result( $file, '', '', '', 'unmodified core file skipped', 'Note', 'file_scan' );
|
275 |
+
return;
|
276 |
+
}
|
|
|
|
|
|
|
|
|
277 |
|
278 |
+
$file_lines = file( $file );
|
279 |
+
foreach ( $this->_prepared_patterns as $pattern ) {
|
280 |
+
foreach ( $file_lines as $line_number => $line_content ) {
|
281 |
+
$line_content = trim( $line_content );
|
282 |
+
if ( preg_match( $pattern,$line_content ) ) {
|
283 |
+
if ( isset( $this->whitelist_patterns[ $pattern ] ) ) {
|
284 |
+
$this->_whitelist_hits[$pattern]++;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
285 |
} else {
|
286 |
+
$problem_description = $this->_pattern_descriptions[ $pattern ][ 'note' ];
|
287 |
+
$problem_level = $this->_pattern_descriptions[ $pattern ][ 'level' ];
|
288 |
+
// log result
|
289 |
+
$this->add_result( $file, $line_content, $line_number+1, $pattern, $problem_description, $problem_level, $this->scan_source );
|
290 |
}
|
|
|
291 |
}
|
292 |
+
}
|
293 |
+
}
|
294 |
+
}
|
295 |
|
296 |
+
function scan_directory( $dir, $callback )
|
297 |
+
{
|
298 |
+
$sub_dirs = array();
|
299 |
+
$dir_files = array();
|
300 |
+
if ( $handle = @opendir( $dir ) ) {
|
301 |
+
while ( false !== ( $file = readdir( $handle ) ) ) {
|
302 |
+
if ( $file != "." && $file != ".." && !in_array( $file, $this->skip_files ) ) {
|
303 |
+
if ( is_dir( $dir . "/" . $file ) ) {
|
304 |
+
$sub_dirs[] = $dir."/".$file;
|
305 |
+
} elseif ( is_file( $dir . "/" . $file ) && $this->is_extension( $file ) ) {
|
306 |
+
$dir_files[] = $dir."/".$file;
|
307 |
+
} else {
|
308 |
+
///neither file, nor directory >>> not interested.
|
309 |
}
|
|
|
|
|
|
|
|
|
|
|
310 |
}
|
311 |
}
|
312 |
+
closedir( $handle );
|
313 |
+
foreach ( $dir_files as $file ) {
|
314 |
+
if ( is_callable( array( $this, $callback ) ) )
|
315 |
+
call_user_func( array( $this, $callback ), $file );
|
316 |
+
}
|
317 |
+
if ( count( $sub_dirs ) > 0) {
|
318 |
+
foreach ( $sub_dirs as $sub_dir ) {
|
319 |
+
$this->scan_directory( $sub_dir, $callback );
|
320 |
+
}
|
321 |
+
}
|
322 |
+
} else {
|
323 |
+
if ( !isset( $this->inaccessible['dirs']['inaccessible'] ) || !in_array( $dir,$this->inaccessible['dirs']['inaccessible'] ) ) {
|
324 |
+
$this->inaccessible['dirs']['inaccessible'][] = $dir;
|
325 |
+
}
|
326 |
}
|
327 |
+
|
328 |
}
|
|
|
329 |
|
330 |
+
function is_extension($file)
|
331 |
+
{
|
332 |
+
if ( empty( $this->allowed_extensions ) )
|
333 |
+
return true;
|
334 |
+
|
335 |
+
$file_ext = array_pop( explode( ".",$file ) );
|
336 |
+
if ( in_array( $file_ext, $this->allowed_extensions ) ) {
|
337 |
+
return true;
|
338 |
+
}
|
339 |
+
return false;
|
340 |
+
}
|
341 |
|
342 |
+
function prepare_patterns() {
|
343 |
+
if ( ! empty( $this->restricted_patterns ) ) {
|
344 |
+
foreach ( $this->restricted_patterns as $pattern => $data ) {
|
345 |
+
$this->_prepared_patterns[] = $pattern;
|
346 |
+
$this->_pattern_descriptions[ $pattern ] = $data;
|
347 |
+
}
|
348 |
+
}
|
349 |
+
if ( ! empty( $this->whitelist_patterns ) ) {
|
350 |
+
foreach ( $this->whitelist_patterns as $pattern => $data ) {
|
351 |
+
$this->_prepared_patterns[] = $pattern;
|
352 |
+
$this->_pattern_descriptions[ $pattern ] = $data;
|
353 |
+
}
|
354 |
+
}
|
355 |
+
|
356 |
+
if ( ! empty( $this->restricted_commands ) ) {
|
357 |
+
foreach ( $this->restricted_commands as $command => $data) {
|
358 |
+
$cmd_pattern = "/\s+($command)+\s?\(+[\$|\'|\"]+/msiU";
|
359 |
+
$this->_prepared_patterns[] = $cmd_pattern;
|
360 |
+
$this->_pattern_descriptions[ $cmd_pattern ] = $data;
|
361 |
+
}
|
362 |
+
}
|
363 |
}
|
364 |
|
365 |
+
function run( $scans=array() ) {
|
366 |
+
if ( !empty( $this->memory_limit ) )
|
367 |
+
@ini_set( 'memory_limit', (int) $this->memory_limit . 'M' );
|
368 |
+
|
369 |
+
$this->prepare_patterns();
|
370 |
+
|
371 |
+
if ( empty( $scans ) || !is_array( $scans ) )
|
372 |
+
$this->add_result( '', '', '', '', 'You did not select any scans. Please select at least one scan to execute.', 'Blocker', 'run' );
|
373 |
+
|
374 |
+
foreach ( (array) $this->_possible_scans as $group => $scan_types ) {
|
375 |
+
if ( in_array( $group, $scans ) ) {
|
376 |
+
foreach ( (array) $scan_types as $scan ) {
|
377 |
+
if ( is_callable( array( &$this, $scan ) ) )
|
378 |
+
call_user_func( array( &$this, $scan ) );
|
379 |
+
}
|
380 |
+
}
|
381 |
+
}
|
382 |
+
}
|
383 |
+
|
384 |
+
function hash_file_scan() {
|
385 |
+
global $wp_version;
|
386 |
+
|
387 |
+
$this->scan_source = 'hash_file_scan';
|
388 |
+
|
389 |
+
unset( $filehashes );
|
390 |
+
$hashes = dirname(__FILE__) . '/hashes-'. $wp_version .'.php';
|
391 |
+
if ( file_exists( $hashes ) ) {
|
392 |
+
include_once( $hashes );
|
393 |
+
} else {
|
394 |
+
$this->add_result( $hashes, '', '', '', 'The file containing the checksums of all the core WordPress files appears to be missing. Either you have upgraded WordPress and this plugin hasn\'t been updated with the new hashes or the file has been deleted/renamed. You will find that a lot more files have been returned in the Suspicious Strings section.', 'Blocker', 'hash_file_scan' );
|
395 |
+
return;
|
396 |
+
}
|
397 |
+
|
398 |
+
if ( !empty( $filehashes ) ) {
|
399 |
+
$this->filehashes = $filehashes;
|
400 |
+
} else {
|
401 |
+
$this->add_result( $hashes, '', '', '', 'The file containing the checksums of all the core WordPress files appears to be corrupt and does not include any hash values.', 'Blocker', 'hash_file_scan' );
|
402 |
+
return;
|
403 |
+
}
|
404 |
+
if ( is_file( $this->_path ) ) {
|
405 |
+
// run search on the file
|
406 |
+
$this->verify_hash( $this->_path );
|
407 |
+
} elseif ( is_dir( $this->_path ) ) {
|
408 |
+
// scan directory contents for string
|
409 |
+
$this->scan_directory($this->_path, 'verify_hash');
|
410 |
+
}
|
411 |
+
|
412 |
+
$this->_path = $this->_init_path;
|
413 |
}
|
414 |
|
415 |
+
function file_permission_scan() {
|
416 |
+
global $wp_version;
|
417 |
+
|
418 |
+
$this->php_user = trim( @exec( 'whoami' ) );
|
419 |
+
// most likely an error
|
420 |
+
if ( !empty( $this->php_user ) && count( split(" ", $this->php_user ) ) > 1 )
|
421 |
+
$this->php_user = '';
|
422 |
+
|
423 |
+
|
424 |
+
$this->scan_source = 'file_permission_scan';
|
425 |
+
|
426 |
+
if ( is_file( $this->_path ) ) {
|
427 |
+
// run search on the file
|
428 |
+
$this->verify_permissions( $this->_path );
|
429 |
+
} elseif ( is_dir( $this->_path ) ) {
|
430 |
+
// scan directory contents for string
|
431 |
+
$this->scan_directory( $this->_path, 'verify_permissions' );
|
432 |
+
}
|
433 |
+
|
434 |
+
$this->_path = $this->_init_path;
|
435 |
+
}
|
436 |
+
|
437 |
+
function file_scan() {
|
438 |
+
$this->scan_source = 'file_scan';
|
439 |
+
|
440 |
+
if ( is_file( $this->_path ) ) {
|
441 |
+
// run search on the file
|
442 |
+
$this->search_file_for_pattern( $this->_path );
|
443 |
+
} elseif ( is_dir( $this->_path ) ) {
|
444 |
+
// scan directory contents for string
|
445 |
+
$this->scan_directory( $this->_path, 'search_file_for_pattern' );
|
446 |
+
}
|
447 |
+
|
448 |
+
if ( ! empty( $this->whitelist_patterns ) ) {
|
449 |
+
foreach ( $this->whitelist_patterns as $pattern => $data ) {
|
450 |
+
if ( !isset( $this->_whitelist_hits[$pattern] ) )
|
451 |
+
$this->add_result( '', '', '', $pattern, $data['note'], $data['level'], $this->scan_source );
|
452 |
+
}
|
453 |
+
}
|
454 |
+
|
455 |
+
$this->_path = $this->_init_path;
|
456 |
}
|
457 |
|
458 |
+
function db_scan_plugins() {
|
459 |
+
global $wpdb;
|
460 |
+
$this->scan_source = 'db_scan_plugins';
|
461 |
+
|
462 |
+
// Suspicious Plugins
|
463 |
+
$active_plugins = get_option( 'active_plugins' );
|
464 |
+
if ( is_array( $active_plugins ) && !empty( $active_plugins ) ) {
|
465 |
+
$suspect_plugins = array();
|
466 |
+
foreach ( $active_plugins as $plugin ) {
|
467 |
+
if ( strpos( $plugin, '..' ) !== false || substr( $plugin, -4 ) != '.php' ) {
|
468 |
+
$suspect_plugins[] = $plugin;
|
469 |
+
}
|
470 |
+
}
|
471 |
+
if ( !empty( $suspect_plugins ) ) {
|
472 |
+
foreach ( $suspect_plugins as $plugin ) {
|
473 |
+
if ( $plugin == '' )
|
474 |
+
$this->add_result( '', '', '', '', 'Blank entry found. Should be removed. It will look like \'i:0;s:0:\"\";\' in the active_records field.', 'Blocker', $this->scan_source );
|
475 |
+
}
|
476 |
+
}
|
477 |
+
}
|
478 |
}
|
479 |
|
480 |
+
function db_scan_options() {
|
481 |
+
global $wpdb;
|
482 |
+
$this->scan_source = 'db_scan_options';
|
483 |
+
|
484 |
+
$options = $wpdb->get_results( "SELECT option_name, option_value FROM {$wpdb->options}" );
|
485 |
+
if ( !$options ) {
|
486 |
+
$this->add_result('', '', '', '', 'No options found, that\'s odd.', 'Blocker', $this->scan_source);
|
487 |
+
return;
|
488 |
+
}
|
489 |
+
|
490 |
+
foreach ( $this->_prepared_patterns as $pattern ) {
|
491 |
+
foreach ( $options as $option ) {
|
492 |
+
$value = $option->option_value;
|
493 |
+
$key = $option->option_name;
|
494 |
+
if ( preg_match( $pattern, $value ) ) {
|
495 |
+
if ( isset( $this->whitelist_patterns[ $pattern ] ) ) {
|
496 |
+
$this->_whitelist_hits[$pattern]++;
|
497 |
+
} else {
|
498 |
+
$problem_description = $this->_pattern_descriptions[ $pattern ][ 'note' ];
|
499 |
+
$problem_level = $this->_pattern_descriptions[ $pattern ][ 'level' ];
|
500 |
+
// log result
|
501 |
+
$this->add_result( $key, $value, $key, $pattern, $problem_description, $problem_level, $this->scan_source );
|
502 |
+
}
|
503 |
+
}
|
504 |
+
}
|
505 |
}
|
506 |
+
unset( $options );
|
507 |
+
return;
|
508 |
+
}
|
509 |
+
|
510 |
+
function db_scan_posts() {
|
511 |
+
global $wpdb;
|
512 |
+
set_time_limit(0);
|
513 |
+
$this->scan_source = 'db_scan_posts';
|
514 |
+
|
515 |
+
$post_count = $wpdb->get_var( "SELECT count(*) FROM {$wpdb->posts} WHERE post_type<>'revision'" );
|
516 |
+
if ( !$post_count || 0 == $post_count ) {
|
517 |
+
$this->add_result( '', '', '', '', 'No posts found, that\'s odd.', 'Blocker', $this->scan_source );
|
518 |
+
return;
|
519 |
}
|
520 |
+
$start = 0;
|
521 |
+
$max = 50; // run always 50 posts at once in order to keep memory kinda empty
|
522 |
+
$end = $limit;
|
523 |
+
|
524 |
+
while ( $end < $post_count ) {
|
525 |
+
$end = $start+$max;
|
526 |
+
$limit = " LIMIT $start, $max";
|
527 |
+
$start = $end;
|
528 |
+
$posts = $wpdb->get_results( "SELECT ID, post_title, concat_ws(' ', post_title, post_content, post_excerpt) as content FROM {$wpdb->posts} WHERE post_type<>'revision' $limit" );
|
529 |
+
|
530 |
+
|
531 |
+
foreach ( $this->_prepared_patterns as $pattern ) {
|
532 |
+
foreach ( $posts as $post ) {
|
533 |
+
if ( preg_match( $pattern, $post->content ) ) {
|
534 |
+
if ( isset( $this->whitelist_patterns[ $pattern ] ) ) {
|
535 |
+
$this->_whitelist_hits[$pattern]++;
|
536 |
+
} else {
|
537 |
+
$problem_description = $this->_pattern_descriptions[ $pattern ][ 'note' ];
|
538 |
+
$problem_level = $this->_pattern_descriptions[ $pattern ][ 'level' ];
|
539 |
+
// log result
|
540 |
+
$this->add_result( $post->ID, $post->content, $post->post_title, $pattern, $problem_description, $problem_level, $this->scan_source );
|
541 |
+
}
|
542 |
+
}
|
543 |
+
}
|
544 |
+
}
|
545 |
+
unset( $posts );
|
546 |
+
}
|
547 |
+
return;
|
548 |
+
}
|
549 |
+
|
550 |
+
function db_scan_comments() {
|
551 |
+
global $wpdb;
|
552 |
+
set_time_limit(0);
|
553 |
+
$this->scan_source = 'db_scan_comments';
|
554 |
+
|
555 |
+
$comment_count = $wpdb->get_var( "SELECT count(*) FROM {$wpdb->comments}" );
|
556 |
+
if ( !$comment_count || 0 == $comment_count ) {
|
557 |
+
$this->add_result('', '', '', '', 'No comments found, that\'s odd.', 'Blocker', $this->scan_source);
|
558 |
+
return;
|
559 |
+
}
|
560 |
+
$start = 0;
|
561 |
+
$max = 100; // run always 100 comments at once in order to keep memory kinda empty
|
562 |
+
$end = $limit;
|
563 |
+
|
564 |
+
while ( $end < $comment_count ) {
|
565 |
+
$end = $start+$max;
|
566 |
+
$limit = " LIMIT $start, $max";
|
567 |
+
$start = $end;
|
568 |
+
$comments = $wpdb->get_results( "SELECT comment_ID, comment_content, comment_author FROM {$wpdb->comments} $limit" );
|
569 |
+
foreach ( $this->_prepared_patterns as $pattern ) {
|
570 |
+
foreach ( $comments as $comment ) {
|
571 |
+
if ( preg_match( $pattern, $comment->comment_content ) ) {
|
572 |
+
if ( isset( $this->whitelist_patterns[ $pattern ] ) ) {
|
573 |
+
$this->_whitelist_hits[$pattern]++;
|
574 |
+
} else {
|
575 |
+
$problem_description = $this->_pattern_descriptions[ $pattern ][ 'note' ];
|
576 |
+
$problem_level = $this->_pattern_descriptions[ $pattern ][ 'level' ];
|
577 |
+
// log result
|
578 |
+
$this->add_result( $comment->comment_ID, $comment->comment_content, $comment->comment_author, $pattern, $problem_description, $problem_level, $this->scan_source );
|
579 |
+
}
|
580 |
+
}
|
581 |
+
}
|
582 |
+
}
|
583 |
+
unset( $comments );
|
584 |
+
}
|
585 |
+
return;
|
586 |
+
}
|
587 |
+
|
588 |
+
function list_admins() {
|
589 |
+
global $wpdb;
|
590 |
+
$this->scan_source = 'list_admins';
|
591 |
+
|
592 |
+
// List all administrators
|
593 |
+
ob_start();
|
594 |
?>
|
595 |
+
<table class="widefat fixed" style="margin-bottom: 2em;">
|
596 |
+
<thead>
|
597 |
+
<tr>
|
598 |
+
<th scope="col" style="width: 5%">ID</th>
|
599 |
+
<th scope="col">Username</th>
|
600 |
+
<th scope="col">Name</th>
|
601 |
+
<th scope="col">Email</th>
|
602 |
+
</tr>
|
603 |
+
</thead>
|
604 |
+
<tbody>
|
605 |
+
<?php
|
606 |
|
607 |
+
$sort_users = 'user_nicename';
|
608 |
+
$user_ids = $wpdb->get_col( $wpdb->prepare( "SELECT $wpdb->users.ID FROM $wpdb->users ORDER BY %s ASC", $sort_users ) );
|
609 |
+
|
610 |
+
foreach ( $user_ids as $id ) {
|
611 |
+
$user = get_userdata( $id );
|
612 |
+
if ( $user->user_level == '10' ) {
|
613 |
+
echo '<tr><td>' . $user->ID . '</td><td>' . $user->user_login . '</td><td>';
|
614 |
+
if ( isset( $user->last_name ) && isset( $user->first_name ) ) {
|
615 |
+
echo $user->first_name . ' ' . $user->last_name;
|
616 |
+
}
|
617 |
+
echo '</td><td>' . $user->user_email . '</td></tr>';
|
618 |
+
}
|
619 |
+
} ?>
|
620 |
+
</tbody>
|
621 |
+
</table>
|
622 |
+
<?php
|
623 |
+
$list = ob_get_clean();
|
624 |
+
$this->add_result('', $list, '', '', '', 'raw', $this->scan_source);
|
625 |
+
}
|
626 |
+
|
627 |
+
function get_serverinfo() {
|
628 |
+
global $wpdb;
|
629 |
+
$this->scan_source = 'get_serverinfo';
|
630 |
|
631 |
+
$info['sqlversion'] = $wpdb->get_var( "SELECT VERSION() AS version" );
|
632 |
+
$mysqlinfo = $wpdb->get_results( "SHOW VARIABLES LIKE 'sql_mode'" );
|
633 |
+
if ( is_array( $mysqlinfo ) )
|
634 |
+
$info['sql_mode'] = $mysqlinfo[0]->Value;
|
635 |
+
|
636 |
+
$ini_vars = array( 'safe_mode', 'allow_url_fopen', 'upload_max_filesize', 'post_max_size', 'max_execution_time', 'memory_limit' );
|
637 |
+
foreach ( $ini_vars as $var ) {
|
638 |
+
if ( $val = ini_get( $var ) )
|
639 |
+
$info[$var] = $val;
|
640 |
+
else
|
641 |
+
$info[$var] = ( $var === false) ? 'off' : 'n/a';
|
642 |
+
}
|
643 |
+
|
644 |
+
if ( function_exists( 'memory_get_usage' ) )
|
645 |
+
$info['memory_usage'] = round( memory_get_usage() / 1024 / 1024, 2) . __(' MByte');
|
646 |
+
|
647 |
+
ob_start();
|
648 |
+
?>
|
649 |
+
<table class="widefat fixed" style="margin-bottom: 2em;">
|
650 |
+
<thead>
|
651 |
+
<tr>
|
652 |
+
<th scope="col">Setting</th>
|
653 |
+
<th scope="col">Value</th>
|
654 |
+
<th scope="col">Description</th>
|
655 |
+
</tr>
|
656 |
+
</thead>
|
657 |
+
<tbody>
|
658 |
+
<?php
|
659 |
+
foreach ( $info as $var => $value ) {
|
660 |
+
if ( isset( $info_desc[$var] ) )
|
661 |
+
$description = $info_desc[$var];
|
662 |
+
else
|
663 |
+
$description = 'n/a';
|
664 |
+
echo '<tr><td>' . $var . '</td><td>' . $value . '</td><td>' . $description . '</td></tr>';
|
665 |
}
|
666 |
+
$list = ob_get_clean();
|
667 |
+
$this->add_result('', $list, '', '', '', 'raw', $this->scan_source);
|
668 |
}
|
|
|
669 |
|
670 |
+
|
|
|
671 |
|
672 |
+
function verify_hash( $file ) {
|
673 |
+
$filename = str_replace( ABSPATH, '', $file );
|
674 |
+
if ( filesize( $file ) > ( (int) $this->file_size_limit * 1024 ) ) {
|
675 |
+
if ( isset( $this->filehashes[$filename] ) ) {
|
676 |
+
$this->add_result( $file, '', '', '', 'core file skipped due to filesize', 'Warning', 'hash_file_scan' );
|
677 |
+
$this->skipped_core_files[] = $file;
|
678 |
+
} else {
|
679 |
+
$this->add_result( $file, '', '', '', 'file skipped due to filesize', 'Warning', 'hash_file_scan' );
|
680 |
}
|
681 |
}
|
682 |
+
|
683 |
+
$md5 = md5_file( $file );
|
684 |
+
if ( isset( $this->filehashes[$filename] ) )
|
685 |
+
$this->all_core_files[] = $file;
|
686 |
+
|
687 |
+
if ( isset( $this->filehashes[$filename] ) && $md5 != $this->filehashes[$filename] ) {
|
688 |
+
$this->add_result( $file, '', '', '', 'altered core file', 'Blocker', 'hash_file_scan' );
|
689 |
+
$this->changed_core_files[] = $file;
|
690 |
+
}
|
691 |
+
}
|
692 |
+
|
693 |
+
function verify_permissions( $file ) {
|
694 |
+
$filename = str_replace( ABSPATH, '', $file );
|
695 |
+
|
696 |
+
$fileinfo = $this->power_stat( $file );
|
697 |
+
if ( !$fileinfo ) {
|
698 |
+
$this->add_result($file, '', '', '', 'Could not gather information about this file', 'Severe', $this->scan_source);
|
699 |
+
return;
|
700 |
+
}
|
701 |
+
|
702 |
+
$apache_file = $is_writable = $is_executable = $changed_last_day = $root_file = false;
|
703 |
+
|
704 |
+
if ( !empty( $this->php_user ) && $fileinfo['owner']['owner']['name'] == $this->php_user )
|
705 |
+
$apache_file = true;
|
706 |
+
|
707 |
+
if ( $fileinfo['filetype']['is_writable'] == 1 )
|
708 |
+
$is_writable = true;
|
709 |
+
|
710 |
+
if ( $fileinfo['filetype']['is_executable'] == 1 )
|
711 |
+
$is_executable = true;
|
712 |
+
|
713 |
+
if ( time() - $fileinfo['time']['mtime'] < 86400 )
|
714 |
+
$changed_last_day = true;
|
715 |
+
|
716 |
+
if ( 'root' == $fileinfo['owner']['owner']['name'] || 0 == $fileinfo['owner']['fileowner'] || 0 == $fileinfo['owner']['filegroup'] ) {
|
717 |
+
$root_file = true;
|
718 |
}
|
719 |
+
|
720 |
+
if ( 'wp-config.php' == $filename && $is_writable )
|
721 |
+
$this->add_result($file, '', '', '', 'Config file is writable (' . $fileinfo['perms']['human'] . ')', 'Blocker', $this->scan_source);
|
722 |
+
else if ( in_array( $file, $this->all_core_files ) && $apache_file && !$is_writable )
|
723 |
+
$this->add_result($file, '', '', '', 'Core file owned by apache user ' . $this->php_user . ' (' . $fileinfo['perms']['human'] . ')', 'Warning', $this->scan_source);
|
724 |
+
else if ( in_array( $file, $this->all_core_files ) && $apache_file && $is_writable )
|
725 |
+
$this->add_result($file, '', '', '', 'Core file owned by apache user ' . $this->php_user . ' and writable (' . $fileinfo['perms']['human'] . ')', 'Severe', $this->scan_source);
|
726 |
+
else if ( $apache_file && $is_writable )
|
727 |
+
$this->add_result($file, '', '', '', 'File owned by apache user ' . $this->php_user . ' and writable (' . $fileinfo['perms']['human'] . ')', 'Warning', $this->scan_source);
|
728 |
+
|
729 |
+
if ( $changed_last_day )
|
730 |
+
$this->add_result($file, '', '', '', 'File changed in last 24 hours', 'Note', $this->scan_source);
|
731 |
}
|
732 |
|
733 |
+
function add_result( $file_path, $line_contents, $line_number,$pattern, $problem_description, $problem_level, $scan_source = 'file' ) {
|
734 |
+
$this->_search_results[] = array(
|
735 |
+
'file_path' => $file_path,
|
736 |
+
'line_contents' => $line_contents,
|
737 |
+
'line_number' => $line_number,
|
738 |
+
'pattern' => $pattern,
|
739 |
+
'problem_description' => $problem_description,
|
740 |
+
'problem_level' => $problem_level,
|
741 |
+
'scan_source' => $scan_source,
|
742 |
+
);
|
|
|
|
|
743 |
}
|
744 |
+
|
745 |
+
function get_search_results( $type = '' ) {
|
746 |
+
switch( $type ) {
|
747 |
+
case 'raw';
|
748 |
+
case 'blocker':
|
749 |
+
case 'severe':
|
750 |
+
case 'warning':
|
751 |
+
case 'note':
|
752 |
+
$resultset = array();
|
753 |
+
reset( $this->_search_results );
|
754 |
+
foreach ( $this->_search_results AS $result ) {
|
755 |
+
if ( $type == strtolower( $result['problem_level'] ) )
|
756 |
+
$resultset[] = $result;
|
757 |
+
}
|
758 |
+
return $resultset;
|
759 |
+
break;
|
760 |
+
case 'hash_file_scan':
|
761 |
+
case 'file_permission_scan':
|
762 |
+
case 'file_scan':
|
763 |
+
case 'db_scan_plugins':
|
764 |
+
case 'db_scan_options':
|
765 |
+
case 'db_scan_posts':
|
766 |
+
case 'db_scan_comments':
|
767 |
+
case 'list_admins':
|
768 |
+
case 'get_serverinfo':
|
769 |
+
$resultset = array();
|
770 |
+
reset( $this->_search_results );
|
771 |
+
foreach ( $this->_search_results AS $result ) {
|
772 |
+
if ( $type == strtolower( $result['scan_source'] ) )
|
773 |
+
$resultset[] = $result;
|
774 |
+
}
|
775 |
+
return $resultset;
|
776 |
+
break;
|
777 |
+
default:
|
778 |
+
return $this->_search_results;
|
779 |
+
break;
|
780 |
}
|
781 |
+
return $this->_search_results;
|
782 |
+
}
|
783 |
+
|
784 |
+
function get_inaccessible() {
|
785 |
+
return $this->inaccessible;
|
786 |
}
|
787 |
|
788 |
+
function get_results() {
|
789 |
+
return $this->_search_results;
|
|
|
|
|
|
|
|
|
|
|
790 |
}
|
791 |
+
|
792 |
+
function get_path() {
|
793 |
+
return $this->_path;
|
794 |
+
}
|
795 |
+
|
796 |
+
function get_html_result() {
|
797 |
+
$html_result = "<hr/><h3>Results for path " . $this->get_path() . "</h3>\n";
|
798 |
+
foreach ( $this->display_severities as $level ) {
|
799 |
+
if ( !in_array( $level, $this->_severities ) && 'raw' != $level )
|
800 |
+
continue;
|
801 |
+
|
802 |
+
$result = $this->get_search_results( $level );
|
803 |
+
if ( 'raw' == $level && !empty( $result ) )
|
804 |
+
$html_result .= $this->_draw_raw( $result );
|
805 |
+
/*else if ( !empty( $result ) ) {
|
806 |
+
$html_result .= "<h4>Results with impact level " . $level . "</h4><ul>\n";
|
807 |
+
$html_result .= $this->_drawRows( $result ) . "\n";
|
808 |
+
$html_result .= "</ul>\n";
|
809 |
+
}*/
|
810 |
+
else if ( !empty( $result ) ) {
|
811 |
+
$html_result .= "<h4>Results with impact level " . $level . "</h4><ul>\n";
|
812 |
+
$html_result .= $this->_draw_table_rows( $result ) . "\n";
|
813 |
+
$html_result .= "</ul>\n";
|
814 |
}
|
815 |
}
|
816 |
+
return $html_result;
|
817 |
+
}
|
818 |
+
|
819 |
+
function _draw_raw( $data ) {
|
820 |
+
$result = '';
|
821 |
+
foreach ( $data as $row ) {
|
822 |
+
if ( isset( $this->_scan_names[$row['scan_source']] ) )
|
823 |
+
$scan_description = $this->_scan_names[$row['scan_source']];
|
824 |
+
else
|
825 |
+
$scan_description = $row['scan_source'];
|
826 |
+
$result.= "<h4>$scan_description</h4>";
|
827 |
+
$result.= $row['line_contents'];
|
828 |
+
}
|
829 |
+
return $result;
|
830 |
+
}
|
831 |
+
|
832 |
+
function _draw_table_rows( $data ) {
|
833 |
+
$result = '
|
834 |
+
<table class="widefat fixed" style="margin-bottom: 2em;">
|
835 |
+
<thead>
|
836 |
+
<tr>
|
837 |
+
<th scope="col" style="width:75px;">Severity</th>
|
838 |
+
<th scope="col">Impact category</th>
|
839 |
+
<th scope="col">Description</th>
|
840 |
+
<th scope="col">File/Dataset</th>
|
841 |
+
</tr>
|
842 |
+
</thead>
|
843 |
+
<tbody>
|
844 |
+
';
|
845 |
+
foreach ( $data as $row ) {
|
846 |
+
if ( 'db_scan_posts' == $row['scan_source'] )
|
847 |
+
$line = "<strong>Post:</strong> <a href='post.php?action=edit&post=" . $row['file_path'] . "' title='Edit this post'>" . $row['line_number'] . "</a>";
|
848 |
+
else if ( 'db_scan_comments' == $row['scan_source'] )
|
849 |
+
$line = "<strong>Comment from:</strong> <a href='comment.php?action=editcomment&c=" . $row['file_path'] . "' title='Edit this comment'>" . $row['line_number'] . "</a>";
|
850 |
+
else if ( !empty( $row['line_number'] ) )
|
851 |
+
$line = str_replace( ABSPATH, '[ABSPATH]/', $row['file_path'] ) . ":" . $row['line_number'];
|
852 |
+
else
|
853 |
+
$line = str_replace( ABSPATH, '[ABSPATH]/', $row['file_path'] );
|
854 |
+
|
855 |
+
switch( strtolower( $row['problem_level'] ) ) {
|
856 |
+
case "blocker":
|
857 |
+
$color = "#f00";
|
858 |
+
break;
|
859 |
+
case "severe":
|
860 |
+
$color = "#f0d";
|
861 |
+
break;
|
862 |
+
case "warning":
|
863 |
+
$color = "#ff0";
|
864 |
+
break;
|
865 |
+
case "note":
|
866 |
+
$color = "#0f0";
|
867 |
+
break;
|
868 |
+
}
|
869 |
+
|
870 |
+
$out_line = '';
|
871 |
+
if ( ":" != $line && !empty( $line ) )
|
872 |
+
$out_line = "$line";
|
873 |
+
else
|
874 |
+
$row['line_contents'] = $row['pattern'];
|
875 |
+
|
876 |
+
if ( isset( $this->_scan_names[$row['scan_source']] ) )
|
877 |
+
$scan_description = $this->_scan_names[$row['scan_source']];
|
878 |
+
else
|
879 |
+
$scan_description = $row['scan_source'];
|
880 |
+
|
881 |
+
$result .= sprintf( '<tr><td style="width:75px;"><span style="background:#000;color:%s;font-weight:bold;">%s</span></td><td>%s</td><td>%s</td><td>%s</td></tr>',
|
882 |
+
$color, $row['problem_level'], $scan_description, $row['problem_description'], $out_line);
|
883 |
+
|
884 |
+
if ( !empty( $row['line_contents'] ) )
|
885 |
+
$result .= sprintf( '<tr><td>Context</td><td colspan="3"><div>%s</div></td></tr>', $this->hilight_text( $row['line_contents'], $row['pattern'] ) );
|
886 |
}
|
887 |
+
|
888 |
+
$result .= '
|
889 |
+
</tbody>
|
890 |
+
</table>
|
891 |
+
';
|
892 |
+
|
893 |
+
return $result;
|
894 |
}
|
895 |
|
896 |
+
function _drawRows( $data ) {
|
897 |
+
$result = '';
|
898 |
+
foreach ( $data as $row ) {
|
899 |
+
if ( 'db_scan_posts' == $row['scan_source'] )
|
900 |
+
$line = "<strong>Post:</strong> <a href='post.php?action=edit&post=" . $row['file_path'] . "' title='Edit this post'>" . $row['line_number'] . "</a>";
|
901 |
+
else if ( 'db_scan_comments' == $row['scan_source'] )
|
902 |
+
$line = "<strong>Comment from:</strong> <a href='comment.php?action=editcomment&c=" . $row['file_path'] . "' title='Edit this comment'>" . $row['line_number'] . "</a>";
|
903 |
+
else
|
904 |
+
$line = $row['file_path'] . ":" . $row['line_number'];
|
905 |
+
switch( strtolower( $row['problem_level'] ) ) {
|
906 |
+
case "blocker":
|
907 |
+
$color = "#f00";
|
908 |
+
break;
|
909 |
+
case "severe":
|
910 |
+
$color = "#f0d";
|
911 |
+
break;
|
912 |
+
case "warning":
|
913 |
+
$color = "#ff0";
|
914 |
+
break;
|
915 |
+
case "note":
|
916 |
+
$color = "#0f0";
|
917 |
+
break;
|
918 |
+
}
|
919 |
+
|
920 |
+
$out_line = '';
|
921 |
+
if ( ":" != $line )
|
922 |
+
$out_line = "($line)";
|
923 |
+
else
|
924 |
+
$row['line_contents'] = $row['pattern'];
|
925 |
+
|
926 |
+
if ( isset( $this->_scan_names[$row['scan_source']] ) )
|
927 |
+
$scan_description = $this->_scan_names[$row['scan_source']];
|
928 |
+
else
|
929 |
+
$scan_description = $row['scan_source'];
|
930 |
+
|
931 |
+
$result .= sprintf( '<li><span style="background:#000;color:%s;font-weight:bold;margin-right:10px;">%s</span><em>(%s)</em> %s %s<div>%s</div></li>',
|
932 |
+
$color, $row['problem_level'], $scan_description, $row['problem_description'], $out_line, $this->hilight_text( $row['line_contents'], $row['pattern'] )
|
933 |
+
);
|
934 |
+
}
|
935 |
+
return $result;
|
936 |
+
}
|
937 |
|
|
|
|
|
938 |
|
939 |
+
function hilight_text( $contents, $pattern ) {
|
940 |
+
$out = '';
|
941 |
+
if ( !empty($pattern) && preg_match( $pattern, $contents, $matches ) ) {
|
942 |
+
$text = $matches[0];
|
943 |
+
} else {
|
944 |
+
if ( !empty( $contents ) )
|
945 |
+
$out.= '<p><code>' . nl2br( wp_specialchars( substr( $contents, 0, 300 ) ) ) . '</code></p>';
|
946 |
+
return $out;
|
947 |
+
}
|
948 |
+
while ( $contents ) {
|
949 |
+
$start = strpos( $contents, $text ) - 50;
|
950 |
+
if ( $start < 0 )
|
951 |
+
$start = 0;
|
952 |
+
$contents = substr( $contents, $start );
|
953 |
+
$out.= '<p><code>' . nl2br( substr( str_replace( wp_specialchars( $text ), '<span style="background: #ff0;">' . wp_specialchars( $text ) . '</span>', wp_specialchars( $contents ) ), 0, 300 ) ) . '</code></p>';
|
954 |
+
$contents = substr( $contents, strpos( $contents, $text ) + strlen( $text ) );
|
955 |
+
if ( strpos( $contents, $text ) === false ) {
|
956 |
+
$contents = false;
|
957 |
}
|
|
|
958 |
}
|
959 |
+
|
960 |
+
return $out;
|
961 |
+
}
|
962 |
|
963 |
+
|
964 |
+
function power_stat( $file ) {
|
965 |
+
clearstatcache();
|
966 |
+
$ss=@stat($file);
|
967 |
+
if ( !$ss )
|
968 |
+
return false; //Couldnt stat file
|
969 |
+
|
970 |
+
$ts=array(
|
971 |
+
0140000=>'ssocket',
|
972 |
+
0120000=>'llink',
|
973 |
+
0100000=>'-file',
|
974 |
+
0060000=>'bblock',
|
975 |
+
0040000=>'ddir',
|
976 |
+
0020000=>'cchar',
|
977 |
+
0010000=>'pfifo'
|
978 |
+
);
|
979 |
+
|
980 |
+
$p=$ss['mode'];
|
981 |
+
$t=decoct($ss['mode'] & 0170000); // File Encoding Bit
|
982 |
+
|
983 |
+
$str =(array_key_exists(octdec($t),$ts))?$ts[octdec($t)]{0}:'u';
|
984 |
+
$str.=(($p&0x0100)?'r':'-').(($p&0x0080)?'w':'-');
|
985 |
+
$str.=(($p&0x0040)?(($p&0x0800)?'s':'x'):(($p&0x0800)?'S':'-'));
|
986 |
+
$str.=(($p&0x0020)?'r':'-').(($p&0x0010)?'w':'-');
|
987 |
+
$str.=(($p&0x0008)?(($p&0x0400)?'s':'x'):(($p&0x0400)?'S':'-'));
|
988 |
+
$str.=(($p&0x0004)?'r':'-').(($p&0x0002)?'w':'-');
|
989 |
+
$str.=(($p&0x0001)?(($p&0x0200)?'t':'x'):(($p&0x0200)?'T':'-'));
|
990 |
+
|
991 |
+
$s=array(
|
992 |
+
'perms'=>array(
|
993 |
+
'umask'=>sprintf("%04o",@umask()),
|
994 |
+
'human'=>$str,
|
995 |
+
'octal1'=>sprintf("%o", ($ss['mode'] & 000777)),
|
996 |
+
),
|
997 |
+
'owner'=>array(
|
998 |
+
'fileowner'=>$ss['uid'],
|
999 |
+
'filegroup'=>$ss['gid'],
|
1000 |
+
'owner'=>
|
1001 |
+
(function_exists('posix_getpwuid'))?
|
1002 |
+
@posix_getpwuid($ss['uid']):'',
|
1003 |
+
'group'=>
|
1004 |
+
(function_exists('posix_getgrgid'))?
|
1005 |
+
@posix_getgrgid($ss['gid']):''
|
1006 |
+
),
|
1007 |
+
|
1008 |
+
'file'=>array(
|
1009 |
+
'filename'=>$file,
|
1010 |
+
'realpath'=>(@realpath($file) != $file) ? @realpath($file) : '',
|
1011 |
+
'dirname'=>@dirname($file),
|
1012 |
+
'basename'=>@basename($file)
|
1013 |
+
),
|
1014 |
+
|
1015 |
+
'filetype'=>array(
|
1016 |
+
'type'=>substr($ts[octdec($t)],1),
|
1017 |
+
'type_octal'=>sprintf("%07o", octdec($t)),
|
1018 |
+
'is_file'=>@is_file($file),
|
1019 |
+
'is_dir'=>@is_dir($file),
|
1020 |
+
'is_link'=>@is_link($file),
|
1021 |
+
'is_readable'=> @is_readable($file),
|
1022 |
+
'is_writable'=> @is_writable($file),
|
1023 |
+
'is_executable'=> @is_executable($file)
|
1024 |
+
|
1025 |
+
),
|
1026 |
+
|
1027 |
+
'size'=>array(
|
1028 |
+
'size'=>$ss['size'], //Size of file, in bytes.
|
1029 |
+
'blocks'=>$ss['blocks'], //Number 512-byte blocks allocated
|
1030 |
+
'block_size'=> $ss['blksize'] //Optimal block size for I/O.
|
1031 |
+
),
|
1032 |
+
|
1033 |
+
'time'=>array(
|
1034 |
+
'mtime'=>$ss['mtime'], //Time of last modification
|
1035 |
+
'atime'=>$ss['atime'], //Time of last access.
|
1036 |
+
'ctime'=>$ss['ctime'], //Time of last status change
|
1037 |
+
'accessed'=>@date('Y M D H:i:s',$ss['atime']),
|
1038 |
+
'modified'=>@date('Y M D H:i:s',$ss['mtime']),
|
1039 |
+
'created'=>@date('Y M D H:i:s',$ss['ctime'])
|
1040 |
+
),
|
1041 |
+
);
|
1042 |
+
|
1043 |
+
clearstatcache();
|
1044 |
+
return $s;
|
1045 |
+
}
|
1046 |
+
|
1047 |
+
}
|
1048 |
+
|
1049 |
+
|
1050 |
+
|
1051 |
+
|
1052 |
+
add_action('admin_menu', 'exploitscanner_menu');
|
1053 |
+
|
1054 |
+
function exploitscanner_menu() {
|
1055 |
+
wp_enqueue_script( 'jquery-form' );
|
1056 |
+
add_submenu_page('index.php', 'Exploit Scanner', 'Exploit Scanner', 'manage_options', 'exploit-admin-page', 'exploit_admin_page');
|
1057 |
+
|
1058 |
+
}
|
1059 |
+
|
1060 |
+
|
1061 |
+
add_action('wp_ajax_get_exploitscanner_results_all', 'exploitscanner_ajax_action_all');
|
1062 |
+
function exploitscanner_ajax_action_all() {
|
1063 |
+
global $wp_version;
|
1064 |
+
check_admin_referer( 'exploitscanner-scan_all' );
|
1065 |
+
$scanner = new Exploit_Scanner( ABSPATH );
|
1066 |
+
$scanner->file_size_limit = ( empty( $_POST['filesize_limit'] ) ) ? 400 : (int) $_POST['filesize_limit'];
|
1067 |
+
$scanner->memory_limit = ( empty( $_POST['memory_limit'] ) ) ? '' : (int) $_POST['memory_limit'];
|
1068 |
+
$scanner->display_severities = ( empty( $_POST['show'] ) ) ? $scanner->display_severities : (array) $_POST['show'];
|
1069 |
+
array_push( $scanner->display_severities, 'raw' );
|
1070 |
+
$scanner->run( $_POST['scans'] );
|
1071 |
+
die( $scanner->get_html_result() );
|
1072 |
}
|
1073 |
+
|
1074 |
+
add_action('wp_ajax_get_exploitscanner_results_custom', 'exploitscanner_ajax_action_custom');
|
1075 |
+
function exploitscanner_ajax_action_custom() {
|
1076 |
+
global $wp_version;
|
1077 |
+
check_admin_referer( 'exploitscanner-scan_customstrings' );
|
1078 |
+
$strings = explode( ',', $_GET['customscan'] );
|
1079 |
+
$scanner = new Exploit_Scanner( ABSPATH );
|
1080 |
+
$scanner->restricted_commands = array();
|
1081 |
+
$scanner->whitelist_patterns = array();
|
1082 |
+
$scanner->restricted_patterns = array();
|
1083 |
+
$scanner->display_severities = array('raw','blocker');
|
1084 |
+
foreach ( (array) $strings as $string ) {
|
1085 |
+
$scanner->restricted_patterns[ "|" . preg_quote($string) . "|msiU" ] = array( "level" => "Blocker", "note" => "Found string " . esc_html($string) );
|
1086 |
+
}
|
1087 |
+
$scanner->file_size_limit = ( empty( $_POST['filesize_limit'] ) ) ? 400 : (int) $_POST['filesize_limit'];
|
1088 |
+
$scanner->memory_limit = ( empty( $_POST['memory_limit'] ) ) ? '' : (int) $_POST['memory_limit'];
|
1089 |
+
$scanner->run( array( 'file_scan', 'db_scan' ) );
|
1090 |
+
die( $scanner->get_html_result() );
|
1091 |
+
}
|
1092 |
+
|
1093 |
+
function exploit_admin_page() {
|
1094 |
+
global $wp_version ?>
|
1095 |
+
<div class="wrap">
|
1096 |
+
<h2>WordPress Exploit Scanner</h2>
|
1097 |
+
<?php
|
1098 |
+
$scan_url = '?page=exploit-admin-page&scan=all';
|
1099 |
+
$scan_action = 'exploitscanner-scan_all';
|
1100 |
+
$scan_link = wp_nonce_url( $scan_url, $scan_action );
|
1101 |
+
?>
|
1102 |
+
|
1103 |
+
<h3>Exploit scan</h3>
|
1104 |
+
<p>This script searches through your WordPress install for signs that may indicate that your website has been compromised by hackers. It does <strong>NOT</strong> remove anything, this is left for the user to do.</p>
|
1105 |
+
<form action='?page=exploit-admin-page&scan=all' id="exploit_scan" method='POST'>
|
1106 |
+
<input type="hidden" name="action" value="get_exploitscanner_results_all">
|
1107 |
+
<table>
|
1108 |
+
<tr><td>Scans to execute:</td><td>General Infos <input type='checkbox' name='scans[]' value='info' checked="checked"/> File scan <input type='checkbox' name='scans[]' value='file_scan' checked="checked"/> Database scan <input type='checkbox' name='scans[]' value='db_scan' checked="checked"/></td></tr>
|
1109 |
+
<tr><td>Severities to show:</td><td> Blocker <input type='checkbox' name='show[]' value='blocker' checked="checked"/> Severe <input type='checkbox' name='show[]' value='severe' checked="checked"/> Warning <input type='checkbox' name='show[]' value='warning' checked="checked"/> Note <input type='checkbox' name='show[]' value='note' /></td></tr>
|
1110 |
+
<tr><td>PHP Memory Limit:</td><td> <input type='text' size='3' name='memory_limit' value='128' />MB (Max memory used by PHP.)</td></tr>
|
1111 |
+
<tr><td>Upper File size Limit:</td><td> <input type='text' size='3' name='filesize_limit' value='400' />KB (Skip files larger than this. Skipped files are listed at the end of scan.)</td></tr>
|
1112 |
+
</table>
|
1113 |
+
<?php wp_nonce_field( 'exploitscanner-scan_all' ); ?>
|
1114 |
+
<input type='submit' class="button exploit-scan-button" value='Run the Scan' />
|
1115 |
+
</form>
|
1116 |
+
<p>If you run into memory problems, increase the PHP memory limit or reduce the file size limit.</p>
|
1117 |
+
<div style='margin-top: 20px;'>
|
1118 |
+
<h3>Custom search</h3>
|
1119 |
+
<p>You can also search the files and database on your site for a custom string:</p>
|
1120 |
+
<form method="get" id="exploit_scan_custom">
|
1121 |
+
<input type="hidden" name="action" value="get_exploitscanner_results_custom">
|
1122 |
+
<input type="hidden" name="page" value="exploit-admin-page" />
|
1123 |
+
<input type="text" name="customscan" class="regular-text code" />
|
1124 |
+
<?php wp_nonce_field( 'exploitscanner-scan_customstrings' ); ?>
|
1125 |
+
<input type="submit" class="button exploit-scan-button" value="Search Files" />
|
1126 |
+
</form>
|
1127 |
+
</div>
|
1128 |
+
<script type="text/javascript">
|
1129 |
+
jQuery(document).ready(function($){
|
1130 |
+
var options = {
|
1131 |
+
url: '<?php echo admin_url("admin-ajax.php"); ?>',
|
1132 |
+
target: '#output1', // target element(s) to be updated with server response
|
1133 |
+
beforeSubmit: showRequest, // pre-submit callback
|
1134 |
+
success: showResponse,
|
1135 |
+
};
|
1136 |
+
|
1137 |
+
var options2 = {
|
1138 |
+
url: '<?php echo admin_url("admin-ajax.php"); ?>',
|
1139 |
+
target: '#output1', // target element(s) to be updated with server response
|
1140 |
+
beforeSubmit: showRequest, // pre-submit callback
|
1141 |
+
success: showResponse,
|
1142 |
+
};
|
1143 |
+
|
1144 |
+
jQuery('#exploit_scan').ajaxForm(options);
|
1145 |
+
jQuery('#exploit_scan_custom').ajaxForm(options2);
|
1146 |
+
|
1147 |
+
});
|
1148 |
+
function showRequest(formData, jqForm, options) {
|
1149 |
+
jQuery('#loader').show();
|
1150 |
+
jQuery('#output1').hide();
|
1151 |
+
}
|
1152 |
+
function showResponse(responseText, statusText) {
|
1153 |
+
jQuery('#loader').hide();
|
1154 |
+
jQuery('#output1').show();
|
1155 |
+
return false;
|
1156 |
+
}
|
1157 |
+
|
1158 |
+
</script>
|
1159 |
+
<?php
|
1160 |
+
if ( isset( $_GET['scan'] ) && $_GET['scan'] == 'all' ) {
|
1161 |
+
check_admin_referer( 'exploitscanner-scan_all' );
|
1162 |
+
$scanner = new Exploit_Scanner( ABSPATH );
|
1163 |
+
$scanner->file_size_limit = ( empty( $_POST['filesize_limit'] ) ) ? 400 : (int) $_POST['filesize_limit'];
|
1164 |
+
$scanner->memory_limit = ( empty( $_POST['memory_limit'] ) ) ? '' : (int) $_POST['memory_limit'];
|
1165 |
+
$scanner->display_severities = ( empty( $_POST['show'] ) ) ? $scanner->display_severities : (array) $_POST['show'];
|
1166 |
+
array_push( $scanner->display_severities, 'raw' );
|
1167 |
+
$scanner->run( $_POST['scans'] );
|
1168 |
+
echo $scanner->get_html_result();
|
1169 |
+
} elseif ( isset( $_GET['customscan'] ) ) {
|
1170 |
+
check_admin_referer( 'exploitscanner-scan_customstrings' );
|
1171 |
+
$strings = explode( ',', $_GET['customscan'] );
|
1172 |
+
$scanner = new Exploit_Scanner( ABSPATH );
|
1173 |
+
$scanner->restricted_commands = array();
|
1174 |
+
$scanner->whitelist_patterns = array();
|
1175 |
+
$scanner->restricted_patterns = array();
|
1176 |
+
$scanner->display_severities = array('blocker');
|
1177 |
+
foreach ( (array) $strings as $string ) {
|
1178 |
+
$scanner->restricted_patterns[ "|" . preg_quote($string) . "|msiU" ] = array( "level" => "Blocker", "note" => "Found string " . esc_html($string) );
|
1179 |
+
}
|
1180 |
+
$scanner->file_size_limit = ( empty( $_POST['filesize_limit'] ) ) ? 400 : (int) $_POST['filesize_limit'];
|
1181 |
+
$scanner->memory_limit = ( empty( $_POST['memory_limit'] ) ) ? '' : (int) $_POST['memory_limit'];
|
1182 |
+
$scanner->run( array( 'file_scan', 'db_scan' ) );
|
1183 |
+
echo $scanner->get_html_result();
|
1184 |
+
}
|
1185 |
+
?>
|
1186 |
+
<div id="output1"></div>
|
1187 |
+
<div id="loader" style="display:none; margin: 10px; padding: 10px; border: 1px solid #333; margin-top: 30px; text-align: center">
|
1188 |
+
<p><strong>Searching your filesystem and database for hidden links, malicious JavaScript and other possible exploit code</strong><br /><br />Please wait while loading...</p>
|
1189 |
+
<img src="<?php echo WP_PLUGIN_URL; ?>/exploit-scanner/loader.gif" height="16px" width="16px" alt="loading-icon" />
|
1190 |
+
</div>
|
1191 |
+
<h4>DISCLAIMER</h4>
|
1192 |
+
<p>Unfortunately it's impossible to catch every hack, and it's also too easy to catch "false positives" or things that aren't hacks. If you have been hacked, this script may help you track down what files, comments or posts have been modified. On the other hand, if this script indicates your blog is clean, don't believe it. This is far from foolproof. </p>
|
1193 |
+
|
1194 |
+
<h5>For the paranoid...</h5>
|
1195 |
+
<p>To prevent someone hiding malicious code inside this plugin and to check that the signatures file (hashes.txt) hasn't been changed, here are the MD5 hashes of these files. Compare them with the references on the plugin homepage. If they match, this file is ok. You'll get extra points if you check this file has the actual md5_file() calls.</p>
|
1196 |
+
<p style="text-align: center">MD5 of exploit-scanner.php: <code><?php echo md5_file(__FILE__); ?></code></p>
|
1197 |
+
<?php if ( file_exists( dirname( __FILE__ ) . '/hashes-' . $wp_version . '.php' ) ) { ?>
|
1198 |
+
<p style="text-align: center">MD5 of hashes-<?php echo $wp_version; ?>.php: <code><?php echo md5_file( dirname( __FILE__ ) . '/hashes-' . $wp_version . '.php' ); ?></code></p>
|
1199 |
+
<?php } ?>
|
1200 |
+
</div>
|
1201 |
+
<?php }
|
hashes-2.8.6.php
ADDED
@@ -0,0 +1,728 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
$filehashes = array(
|
3 |
+
'index.php' => '67395ee44d8a23a998eaa8df023d4d7a',
|
4 |
+
'license.txt' => '4d1f767863b6a3985f43e9401b0739f6',
|
5 |
+
'readme.html' => '027283d03b08abae67279fd17a37760b',
|
6 |
+
'wp-admin/admin-ajax.php' => 'c3865f19ac4b72dbedaa040024fd4591',
|
7 |
+
'wp-admin/admin-footer.php' => '4fa2df4c894a7fe2391ecf118ea1d859',
|
8 |
+
'wp-admin/admin-functions.php' => '8d7148c613538bf567216bf9ec3c8572',
|
9 |
+
'wp-admin/admin-header.php' => 'e1ad6ce990533e5d41ba26d02be53f86',
|
10 |
+
'wp-admin/admin-post.php' => 'b263826ffd46c1241ff2817890b8c840',
|
11 |
+
'wp-admin/admin.php' => '515cc4c3bd73af643dbdc3d3d0baeb9e',
|
12 |
+
'wp-admin/async-upload.php' => '1bd1df39461758b0cb0429b772475059',
|
13 |
+
'wp-admin/categories.php' => 'e5451eb0c7492902657ee3cc48a9de5a',
|
14 |
+
'wp-admin/comment.php' => 'c568126864001bedf150adf16c205ff1',
|
15 |
+
'wp-admin/css/colors-classic-rtl.css' => '74e3bc0961e42685a1b2918ee21de19f',
|
16 |
+
'wp-admin/css/colors-classic.css' => '4f0524bd41bf91793c2eab07e8737b24',
|
17 |
+
'wp-admin/css/colors-fresh-rtl.css' => 'eee458d5eaf8a119e8543f311b3b77ed',
|
18 |
+
'wp-admin/css/colors-fresh.css' => '04f64d74b428649848955844036812f2',
|
19 |
+
'wp-admin/css/dashboard-rtl.css' => '81238c176822f1efd9d121eea5fbb3d7',
|
20 |
+
'wp-admin/css/dashboard.css' => '9c505ae63a80736883260c90740e2e7c',
|
21 |
+
'wp-admin/css/farbtastic-rtl.css' => '117dc1e6ac587635c98975cfcdfb0444',
|
22 |
+
'wp-admin/css/farbtastic.css' => 'b45e420bae504bad3ad026f11fb34414',
|
23 |
+
'wp-admin/css/global-rtl.css' => '639432085f54f73cc7857d5e6b3fdb22',
|
24 |
+
'wp-admin/css/global.css' => '5ec06085a2ae7d41dcfcc9f48701caaf',
|
25 |
+
'wp-admin/css/ie-rtl.css' => 'a0d306ff28ee7a91c04dd2ba920d589a',
|
26 |
+
'wp-admin/css/ie.css' => '886e4191f990f81168d9d9e7c842ca6a',
|
27 |
+
'wp-admin/css/install-rtl.css' => '39eb6cb46f5071727c143ba407b54b53',
|
28 |
+
'wp-admin/css/install.css' => '0380e33272aa60d16b2e7d405e7288a8',
|
29 |
+
'wp-admin/css/login-rtl.css' => 'd356512a353a71d70dbeddc53fdf93ce',
|
30 |
+
'wp-admin/css/login.css' => 'c6f1a4e8396191754e8043b78cc6e8b1',
|
31 |
+
'wp-admin/css/media-rtl.css' => '8d9762bb606d52329ce469823b56119d',
|
32 |
+
'wp-admin/css/media.css' => '56b3176fa896ff69ebea6d6689f1b5df',
|
33 |
+
'wp-admin/css/plugin-install-rtl.css' => 'ff2cc41b3ec965996608fc6a416c0d34',
|
34 |
+
'wp-admin/css/plugin-install.css' => '48705f886f1714e4c4c130e5fa7443f8',
|
35 |
+
'wp-admin/css/press-this-rtl.css' => '098fcc8fa903f68d4827a80b19ed8624',
|
36 |
+
'wp-admin/css/press-this.css' => 'fb5beaa57223ab3cd864e925731bf76f',
|
37 |
+
'wp-admin/css/theme-editor-rtl.css' => '67937f3a3e8e4b9eeaa5fe15c1cce63b',
|
38 |
+
'wp-admin/css/theme-editor.css' => '1d469fa64b12915edd13d68148453c72',
|
39 |
+
'wp-admin/css/theme-install.css' => 'caca2d1c6d7f70138a2cae7cff992f9c',
|
40 |
+
'wp-admin/css/widgets-rtl.css' => 'c72b211f292a7ac48348b3aa47e8f9c1',
|
41 |
+
'wp-admin/css/widgets.css' => 'c4d1ad88ee2a59c096cee1ac30690056',
|
42 |
+
'wp-admin/custom-header.php' => '632997600dd79ad291ed65ca969ca0bb',
|
43 |
+
'wp-admin/edit-attachment-rows.php' => '78df25e168c316610d4e3471e921e7a9',
|
44 |
+
'wp-admin/edit-category-form.php' => 'fd6cd34002ce6e005ba9ab54f127f97e',
|
45 |
+
'wp-admin/edit-comments.php' => '60946abbe37bf8968c46c31b358f8435',
|
46 |
+
'wp-admin/edit-form-advanced.php' => '381969d3b7321567e741c212181bc05e',
|
47 |
+
'wp-admin/edit-form-comment.php' => 'f944e0de9c3828b672c32584fa94db7b',
|
48 |
+
'wp-admin/edit-link-categories.php' => '4dad62fc3811b01a419f1af05cd183d8',
|
49 |
+
'wp-admin/edit-link-category-form.php' => '5f91fb7619741704b7d51086c8ebf8ca',
|
50 |
+
'wp-admin/edit-link-form.php' => 'db6471427a4ecc0c8649683cae47d072',
|
51 |
+
'wp-admin/edit-page-form.php' => 'b2940d3605dfbec83b8f767be5b8f39d',
|
52 |
+
'wp-admin/edit-pages.php' => 'cedd36cd423ee16d8e0bf13f63cbf4c1',
|
53 |
+
'wp-admin/edit-post-rows.php' => '6b033cf4c4dee90ccf74739efa6d8d23',
|
54 |
+
'wp-admin/edit-tag-form.php' => '5bc3563c4c3f9f2b6458c5cb576913c9',
|
55 |
+
'wp-admin/edit-tags.php' => 'bd6f2d8432eb5c9065468ac16fa1f4ca',
|
56 |
+
'wp-admin/edit.php' => '874569992dab2079e758fa34ec7181b5',
|
57 |
+
'wp-admin/export.php' => 'fe7409978fe44e7a9265079b7bf6e362',
|
58 |
+
'wp-admin/gears-manifest.php' => '645221e41afbd86c8461061dc51314dc',
|
59 |
+
'wp-admin/images/align-center.png' => 'a1427c5dd8d6f9292430f6650824270a',
|
60 |
+
'wp-admin/images/align-left.png' => '731f8ceb9ea5cf3ad41810cf0af73821',
|
61 |
+
'wp-admin/images/align-none.png' => 'de2bd2479bc66930d4db049e91b7451a',
|
62 |
+
'wp-admin/images/align-right.png' => 'f1c033dd4d0600bf18af7ed9a7441ea5',
|
63 |
+
'wp-admin/images/archive-link.png' => '9be05a7e7b41b72e75a2beddc4f6ac55',
|
64 |
+
'wp-admin/images/blue-grad.png' => 'e475da9341c39501f1c29e29756942f8',
|
65 |
+
'wp-admin/images/browse-happy.gif' => '3bad5ccecc83f7e368c79bc7f961e337',
|
66 |
+
'wp-admin/images/bubble_bg-rtl.gif' => '0acb13b5fb21466f3984a5a3bdfc3869',
|
67 |
+
'wp-admin/images/bubble_bg.gif' => 'b78fd5758e486128cf448c5973ca6ee4',
|
68 |
+
'wp-admin/images/button-grad-active-vs.png' => '60f72449e40ee8a8d6bef4e8ed0260fd',
|
69 |
+
'wp-admin/images/button-grad-active.png' => 'cadd565a465b3eb73ed386c210145fe2',
|
70 |
+
'wp-admin/images/button-grad-vs.png' => 'c614f82ed58080d37618cc1839e4ce02',
|
71 |
+
'wp-admin/images/button-grad.png' => '16609cb9ee7897725e7692c17e9c29e4',
|
72 |
+
'wp-admin/images/comment-grey-bubble.png' => '165ba7d3a093473cf47a6b0fbd141dbb',
|
73 |
+
'wp-admin/images/date-button.gif' => '6785862d31a929183751cfa86cddfdca',
|
74 |
+
'wp-admin/images/ed-bg-vs.gif' => '01112dae05c7c37e16eeb3647c138a66',
|
75 |
+
'wp-admin/images/ed-bg.gif' => '58d491c508be7f09809f11bca4a1bd77',
|
76 |
+
'wp-admin/images/fade-butt.png' => 'e6c8b1c6db50db66bf04da9bbbe3ee0e',
|
77 |
+
'wp-admin/images/fav-arrow-rtl.gif' => '8dcc7939100a91147bb7fb6d2a651bec',
|
78 |
+
'wp-admin/images/fav-arrow-vs.gif' => 'a80771dd731c047e5dbbee8829163e82',
|
79 |
+
'wp-admin/images/fav-arrow.gif' => 'e46967a00b05a38fc0a09933d8e007a3',
|
80 |
+
'wp-admin/images/fav-top-vs.gif' => '0b16e5449ce8cd8fc7c7412f385e9edc',
|
81 |
+
'wp-admin/images/fav-top.png' => '6d51aeeb995d529ea74d3339c8fd826b',
|
82 |
+
'wp-admin/images/fav-vs.png' => '8720fba5c7c55ff7becb4c1ee4bff05b',
|
83 |
+
'wp-admin/images/fav.png' => '35ec77238a48560932bf6165a6db7e6c',
|
84 |
+
'wp-admin/images/generic.png' => 'ec85cdf6efc2a983e50f7d86a976c467',
|
85 |
+
'wp-admin/images/gray-grad.png' => 'c5fd1e0895b8dec4db822fa9a3f7b92d',
|
86 |
+
'wp-admin/images/icons32-vs.png' => '74426dbce10c55709c4877554d455c4e',
|
87 |
+
'wp-admin/images/icons32.png' => '23c825ff877459a4339cf7a7b2258141',
|
88 |
+
'wp-admin/images/list-vs.png' => '978f0351d99a761bdafd313e76201be9',
|
89 |
+
'wp-admin/images/list.png' => 'cce19b15b4d3e4ad7dac568f1a1c1f90',
|
90 |
+
'wp-admin/images/loading-publish.gif' => '27c1513ac7487e7d4e09fd57d85dd15c',
|
91 |
+
'wp-admin/images/loading.gif' => '9a8269421303631316be4ab5e34870e1',
|
92 |
+
'wp-admin/images/logo-ghost.png' => 'c406a787e10714b99129ff7dff95efcd',
|
93 |
+
'wp-admin/images/logo-login.gif' => 'c62e03cf2e9417e6019657b3f5379802',
|
94 |
+
'wp-admin/images/logo.gif' => 'a402ef261eb443496e6179f6e9653d29',
|
95 |
+
'wp-admin/images/marker.png' => '4f932ddbee5d5e9ebd89a2ec63eda2d1',
|
96 |
+
'wp-admin/images/mask.png' => 'c6dc921c0d6f2197793d9174b4267ca0',
|
97 |
+
'wp-admin/images/media-button-image.gif' => '0357183d4a361456b8b121209af5c608',
|
98 |
+
'wp-admin/images/media-button-music.gif' => '0fec8f86c9c036a2ecf54dbb66a63133',
|
99 |
+
'wp-admin/images/media-button-other.gif' => '22dd6f85320fb13797ab7e3ff890515b',
|
100 |
+
'wp-admin/images/media-button-video.gif' => 'bc7efebd002f34e8e6c30769ff417bdd',
|
101 |
+
'wp-admin/images/menu-arrows.gif' => 'f8872ea252d5551b77eff89ff7c74dcc',
|
102 |
+
'wp-admin/images/menu-bits-rtl-vs.gif' => '622bc5e4f63493c37b114406561c5de5',
|
103 |
+
'wp-admin/images/menu-bits-rtl.gif' => 'e432360b7566ff59bd6c7b4df564b713',
|
104 |
+
'wp-admin/images/menu-bits-vs.gif' => 'b1627ef5a5aad512136dcef1213763ee',
|
105 |
+
'wp-admin/images/menu-bits.gif' => 'f8e09b1fc524fd96735945077d401793',
|
106 |
+
'wp-admin/images/menu-dark-rtl.gif' => 'b6f525c71c056ecedfd837daf18c3c4a',
|
107 |
+
'wp-admin/images/menu-dark.gif' => 'a5af317b01fd87c8eceedef87ae0c26f',
|
108 |
+
'wp-admin/images/menu-vs.png' => '8bef8c397f737a91ff8c4a2edbc16b36',
|
109 |
+
'wp-admin/images/menu.png' => '1a36e748b6be3b15dfaa18b2149beefe',
|
110 |
+
'wp-admin/images/no.png' => 'f787d0b0069027fc7b571dbbdabaa3c5',
|
111 |
+
'wp-admin/images/required.gif' => '449bfee22ffa295314e08b314604cd0c',
|
112 |
+
'wp-admin/images/resize.gif' => '68a8e57741df1a16444713a11d7c5b82',
|
113 |
+
'wp-admin/images/screen-options-left.gif' => '1f4510095793f25a12c376f136429880',
|
114 |
+
'wp-admin/images/screen-options-right-up.gif' => '745eebb21d33c943adbfea7bc6d37aa4',
|
115 |
+
'wp-admin/images/screen-options-right.gif' => 'ae671f7223fff3a47375d47a4bcf587f',
|
116 |
+
'wp-admin/images/se.png' => 'e9b50c73bfb3dc46a1eccf07f4bfc6ab',
|
117 |
+
'wp-admin/images/star.gif' => '53b4445439bcf04aa36901548e379f12',
|
118 |
+
'wp-admin/images/toggle-arrow-rtl.gif' => 'da61f45c1385ee6ed1663676eec4aed2',
|
119 |
+
'wp-admin/images/toggle-arrow.gif' => 'a3722fea95a66f24f350f36147bc8beb',
|
120 |
+
'wp-admin/images/visit-site-button-grad-vs.gif' => '4fd90308cccfc4fe131b07df35be96d4',
|
121 |
+
'wp-admin/images/visit-site-button-grad.gif' => '75e555e701dd658659474dfb3a70e851',
|
122 |
+
'wp-admin/images/wheel.png' => '2b6d304868ff398c17252b7b0a0414c4',
|
123 |
+
'wp-admin/images/white-grad-active.png' => '6b6d2eab57230f1d2afd4b6d9380fd1c',
|
124 |
+
'wp-admin/images/white-grad.png' => '3090f8947eac64830900abf4562ca8e1',
|
125 |
+
'wp-admin/images/wordpress-logo.png' => '1a77b8aa7318b3e3b99e103aac47e448',
|
126 |
+
'wp-admin/images/wp-logo-vs.gif' => '4a094808ccb90b388ac92611d6e9e365',
|
127 |
+
'wp-admin/images/wp-logo.gif' => '797be4dafa9e042735e030df67ec0f26',
|
128 |
+
'wp-admin/images/wpspin_dark.gif' => '5bf61d27a7893daaf24bb158fddb550a',
|
129 |
+
'wp-admin/images/wpspin_light.gif' => '67f40a30bfa13743e5c4e86bfa467a90',
|
130 |
+
'wp-admin/images/xit.gif' => '6a03660e0544b85fc84d4de174c28741',
|
131 |
+
'wp-admin/images/yes.png' => '94040f30512d9d0993f0b903b25024e2',
|
132 |
+
'wp-admin/import/blogger.php' => 'd7e0e19732f97a41e8e23036ebf11926',
|
133 |
+
'wp-admin/import/blogware.php' => '20415f7ff4d106185b768a8c90514a18',
|
134 |
+
'wp-admin/import/dotclear.php' => 'de433f8ff866952a9a91a49f8370ae9e',
|
135 |
+
'wp-admin/import/greymatter.php' => '6961a7e931c50def9787677d87a1cc61',
|
136 |
+
'wp-admin/import/livejournal.php' => 'e99abd5cd281f6c0ccfd5baf52fcc017',
|
137 |
+
'wp-admin/import/mt.php' => '4e31bcc6f6a87d26b40731862b8cb52b',
|
138 |
+
'wp-admin/import/opml.php' => '92b3b8101405d6caa71aacfd1c0553c0',
|
139 |
+
'wp-admin/import/rss.php' => '6be458611debe108db3e59a0029f56c7',
|
140 |
+
'wp-admin/import/stp.php' => 'bda74909223cd3e3be2d3be58e4a1d70',
|
141 |
+
'wp-admin/import/textpattern.php' => 'f298e25f2efbf3a5c480075cbe422b87',
|
142 |
+
'wp-admin/import/utw.php' => '380d600de9773803d79f4e8ff8c8c358',
|
143 |
+
'wp-admin/import/wordpress.php' => '2bc1941f3b90078b0c437cd22fa75f4f',
|
144 |
+
'wp-admin/import/wp-cat2tag.php' => '5944d5a4154387738b970af23fed32c2',
|
145 |
+
'wp-admin/import.php' => 'cd76e928a29433162a7721481d9bcc9e',
|
146 |
+
'wp-admin/includes/admin.php' => '1976c45c622641437e4e83771a20aa2c',
|
147 |
+
'wp-admin/includes/bookmark.php' => 'a682bdd2a59052ed0ee2f686cd912bdd',
|
148 |
+
'wp-admin/includes/class-ftp-pure.php' => 'ecc03dc71a4ecbaa30831d6375c6e15c',
|
149 |
+
'wp-admin/includes/class-ftp-sockets.php' => '983e77ea48e8a21676334295e75e1e2f',
|
150 |
+
'wp-admin/includes/class-ftp.php' => '0e0389109a3fd469cf55acc2d974d5b4',
|
151 |
+
'wp-admin/includes/class-pclzip.php' => '5eb649d754475c5ba8c03f43e9d4c35e',
|
152 |
+
'wp-admin/includes/class-wp-filesystem-base.php' => 'f33ae72d118fb3b405e4c38c7b044ef5',
|
153 |
+
'wp-admin/includes/class-wp-filesystem-direct.php' => 'b9631c47f1a55707c7ccc468e77e5813',
|
154 |
+
'wp-admin/includes/class-wp-filesystem-ftpext.php' => '2c38d4f9b9e44407be7f9e4659b15779',
|
155 |
+
'wp-admin/includes/class-wp-filesystem-ftpsockets.php' => '103ceabdaa0da8e1cb143737370cb691',
|
156 |
+
'wp-admin/includes/class-wp-filesystem-ssh2.php' => 'ed5f048601b8b7621d98e4b715324dd4',
|
157 |
+
'wp-admin/includes/class-wp-upgrader.php' => '106cc69da7f13ad3820be38ae913412f',
|
158 |
+
'wp-admin/includes/comment.php' => 'b951259804498c71bd6901dba9f175a7',
|
159 |
+
'wp-admin/includes/continents-cities.php' => '024b57d99bbe8b9e133316d1e98fc79d',
|
160 |
+
'wp-admin/includes/dashboard.php' => 'e38010fec18c2eb5e82925007c095c27',
|
161 |
+
'wp-admin/includes/export.php' => '34a08bf4b3cd07ba70cc95b790db03d3',
|
162 |
+
'wp-admin/includes/file.php' => 'aebfbe5a831756b9c2eab92b8234c385',
|
163 |
+
'wp-admin/includes/image.php' => '71af3690851d90e9b0b9c90d3c04891e',
|
164 |
+
'wp-admin/includes/import.php' => '38cb3659f2da51e9c9c635e883920f00',
|
165 |
+
'wp-admin/includes/manifest.php' => '4d5e9b6dc52bab7235999fb58633c3bd',
|
166 |
+
'wp-admin/includes/media.php' => 'da8f1c48d945f78e8bb1ca9dc957c48f',
|
167 |
+
'wp-admin/includes/misc.php' => '8ecf08693920efd68955b769c39261d9',
|
168 |
+
'wp-admin/includes/plugin-install.php' => 'e854b624a9a98247de2ac3a43b0590f0',
|
169 |
+
'wp-admin/includes/plugin.php' => 'b252ae3b3d4ecd6d98416d5c230e660c',
|
170 |
+
'wp-admin/includes/post.php' => 'a53f8817d89b1d396e9ffb78e99b8953',
|
171 |
+
'wp-admin/includes/schema.php' => '21bf0bdf60715b208941a27b8d41e946',
|
172 |
+
'wp-admin/includes/taxonomy.php' => 'e3bd63a4ae306fee68272541bc17fee1',
|
173 |
+
'wp-admin/includes/template.php' => '197138e312f93ed92766a1a34d1c594b',
|
174 |
+
'wp-admin/includes/theme-install.php' => 'feae973a353ef8d871e59a8568358a1a',
|
175 |
+
'wp-admin/includes/theme.php' => '0356ab781892ac9a1c53ff0e5f86826c',
|
176 |
+
'wp-admin/includes/update-core.php' => 'a6b20656a4c8d0853972b9e441fce7c7',
|
177 |
+
'wp-admin/includes/update.php' => 'e98e2fa4a3a3a9ad45ec914f2ab6f0dd',
|
178 |
+
'wp-admin/includes/upgrade.php' => '83d8674eb2c0d969e8366f68c507d3f9',
|
179 |
+
'wp-admin/includes/user.php' => 'c06bcb31a77362d9f419307f155d2dda',
|
180 |
+
'wp-admin/includes/widgets.php' => 'c9d23e1e5f11155b9cb14f9bb9ca6522',
|
181 |
+
'wp-admin/index-extra.php' => 'b61221d48f6121a9fde8c16a7004c71a',
|
182 |
+
'wp-admin/index.php' => '0be16d3331c61a45f2e01d22962d9ee3',
|
183 |
+
'wp-admin/install-helper.php' => '27824cad71dd883f9de818e03abb685d',
|
184 |
+
'wp-admin/install.php' => '04cf5ebf5a1bd140f024f136d75deb22',
|
185 |
+
'wp-admin/js/cat.dev.js' => 'ed5cc1456007f3712e9722ea27253bb2',
|
186 |
+
'wp-admin/js/cat.js' => '8a0487d34029c6621081f5a89d91a82d',
|
187 |
+
'wp-admin/js/categories.dev.js' => 'cbb0371ccea124798628e181ca157a55',
|
188 |
+
'wp-admin/js/categories.js' => '80b80ef0cb2360338c6e4668829ad013',
|
189 |
+
'wp-admin/js/comment.dev.js' => 'ebdf0f396c101af015d57df13c8e825b',
|
190 |
+
'wp-admin/js/comment.js' => 'f58da1479570a8daae958114afe35ed9',
|
191 |
+
'wp-admin/js/common.dev.js' => 'b3006945c3b8408f9c889b6aa6d28e44',
|
192 |
+
'wp-admin/js/common.js' => '2b623d55968742539ffde9ff9416bb29',
|
193 |
+
'wp-admin/js/custom-fields.dev.js' => '06cb5141c3ac8e8abdfa887560fc9fc0',
|
194 |
+
'wp-admin/js/custom-fields.js' => '14698a9d69a9256b8b63e1552dc85f06',
|
195 |
+
'wp-admin/js/dashboard.dev.js' => '3e3fbecb5bc1fa258a22a6f9a2a534b1',
|
196 |
+
'wp-admin/js/dashboard.js' => '2c8218cfd143404d332975abed1aa569',
|
197 |
+
'wp-admin/js/edit-comments.dev.js' => '6b85ab29401b236b7248d2a1aba7f209',
|
198 |
+
'wp-admin/js/edit-comments.js' => 'f1fb0174b531476f287709b0b9a523e3',
|
199 |
+
'wp-admin/js/editor.dev.js' => '5237280cf062f0466e1bb2c52b7585fe',
|
200 |
+
'wp-admin/js/editor.js' => '40f8ea7fd6fe99ea9ebf66ae9af50166',
|
201 |
+
'wp-admin/js/farbtastic.js' => 'ba2afcd06915d8d312f7140c464938c1',
|
202 |
+
'wp-admin/js/gallery.dev.js' => 'eb4e740117c8ff840c0bad6c23cdffbe',
|
203 |
+
'wp-admin/js/gallery.js' => '89772dfb0b8cc96168923a057ba97131',
|
204 |
+
'wp-admin/js/inline-edit-post.dev.js' => '0803e8b6ee18cfba4bf61503f40fe9dc',
|
205 |
+
'wp-admin/js/inline-edit-post.js' => '830550348b2fcab412282a6f0415d67a',
|
206 |
+
'wp-admin/js/inline-edit-tax.dev.js' => '23d59c5aefc3f6f0b809e3972ba19403',
|
207 |
+
'wp-admin/js/inline-edit-tax.js' => '8419d6590d1eacdd654695b963d1bc01',
|
208 |
+
'wp-admin/js/link.dev.js' => 'ecf1bfdbf145bdab5a0d61ea4039ef55',
|
209 |
+
'wp-admin/js/link.js' => 'c4a2322a9fd0b704a2c78e090d402011',
|
210 |
+
'wp-admin/js/media-upload.dev.js' => '61af37c5377935cadec17885b0f46e99',
|
211 |
+
'wp-admin/js/media-upload.js' => '813637207d5f403cbc32feefb0ec32d7',
|
212 |
+
'wp-admin/js/media.dev.js' => '82151afee85ea31377c2d756319d8d87',
|
213 |
+
'wp-admin/js/media.js' => 'f5f319c12c4a5494df30c1d326465a6b',
|
214 |
+
'wp-admin/js/page.dev.js' => 'd94c023c0c18b0900218f78b9aad9d3b',
|
215 |
+
'wp-admin/js/page.js' => 'd8613d8d5318ca18f488428db7e0d97f',
|
216 |
+
'wp-admin/js/password-strength-meter.dev.js' => '2072440d1515a541623bd1ef77373c12',
|
217 |
+
'wp-admin/js/password-strength-meter.js' => '21310235a8b2671858df84db50a44cb3',
|
218 |
+
'wp-admin/js/plugin-install.dev.js' => '7cd872829eeaeee63270591b89d50ce9',
|
219 |
+
'wp-admin/js/plugin-install.js' => '62abb0285535502328c0cf33f5a3db63',
|
220 |
+
'wp-admin/js/post.dev.js' => '4758b37ba0588d0100bfad9ea7557bf9',
|
221 |
+
'wp-admin/js/post.js' => '88ce6f35b60890ede66b1ca4c39fc4af',
|
222 |
+
'wp-admin/js/postbox.dev.js' => '866680547d1d53c6782291784e89f873',
|
223 |
+
'wp-admin/js/postbox.js' => '9bbabda30eba2bf23c9c9cd3b6afec1f',
|
224 |
+
'wp-admin/js/revisions-js.php' => '55ebf5d40e3bd309adc7aea654e4b7ee',
|
225 |
+
'wp-admin/js/slug.dev.js' => '216b3181cccbf143cef4cae1d09dcb1d',
|
226 |
+
'wp-admin/js/slug.js' => '6856b5d635ea0863e4a0531df329c8ae',
|
227 |
+
'wp-admin/js/tags.dev.js' => '4d39fa68e503ff895b3896b8b30ca544',
|
228 |
+
'wp-admin/js/tags.js' => 'b4f6de1adf243fb1c4ca11109ca8358b',
|
229 |
+
'wp-admin/js/theme-preview.dev.js' => '1594334801bab2aa5bbcac672d855780',
|
230 |
+
'wp-admin/js/theme-preview.js' => '2a45bb51fcab2c53f7e723ca2daf1847',
|
231 |
+
'wp-admin/js/user-profile.dev.js' => 'b1ba00820be627f9a5bb9ad51c226c6e',
|
232 |
+
'wp-admin/js/user-profile.js' => '6f264365c799d04bf353784315b3541e',
|
233 |
+
'wp-admin/js/utils.dev.js' => 'ff272859f10cd239e8e27cae422b6656',
|
234 |
+
'wp-admin/js/utils.js' => 'e102613271d205d357aa317ee6c8f32b',
|
235 |
+
'wp-admin/js/widgets.dev.js' => 'b54c11ff884ea8fcfe6e821835638da2',
|
236 |
+
'wp-admin/js/widgets.js' => '0aabf147505c4f70b2118bf9f2cd441e',
|
237 |
+
'wp-admin/js/word-count.dev.js' => '2e2c9c93a59d78c9004c4359a2a05161',
|
238 |
+
'wp-admin/js/word-count.js' => 'a74398b6c7a69d86c66f1e2c2e763a36',
|
239 |
+
'wp-admin/js/wp-gears.dev.js' => '56bb1aec2083a149e8b0dbab78eccdf2',
|
240 |
+
'wp-admin/js/wp-gears.js' => '596473e965c68ad64c8c20b5c56e0da3',
|
241 |
+
'wp-admin/js/xfn.dev.js' => '07f6405c0e3617f34ce1d404088fe2bb',
|
242 |
+
'wp-admin/js/xfn.js' => 'ab6a19cf026e7befa133ff49e4d27e66',
|
243 |
+
'wp-admin/link-add.php' => '796d273d6569da0534a5622cf41a7b8f',
|
244 |
+
'wp-admin/link-category.php' => '699855b991c70d1af8545bbea7cf4a9f',
|
245 |
+
'wp-admin/link-manager.php' => '0b8bd2659c2e092782ad0eff5f3a0104',
|
246 |
+
'wp-admin/link-parse-opml.php' => 'cfef4044e1dd3c63aa482d9df48dbd7a',
|
247 |
+
'wp-admin/link.php' => 'bfe9e765719cc2693ec86ddb15ce35ce',
|
248 |
+
'wp-admin/load-scripts.php' => '9949f1b21c81ba97e7b6e01d910b8251',
|
249 |
+
'wp-admin/load-styles.php' => 'efce2e0b83c74adf856048a6c3bbfb5e',
|
250 |
+
'wp-admin/media-new.php' => '462bd844b135aa094eb1f689dcf7fb63',
|
251 |
+
'wp-admin/media-upload.php' => '1ac316dbaaec667dd60028ae9312fa33',
|
252 |
+
'wp-admin/media.php' => '749d3b574173c347b73efa349dffc963',
|
253 |
+
'wp-admin/menu-header.php' => '57ab03b93f224778c3417d8ec0679eb4',
|
254 |
+
'wp-admin/menu.php' => '35f26a3e7fd50d4a7158e7d11cdbc95d',
|
255 |
+
'wp-admin/moderation.php' => '26f9c8e07438e56b3e12b94f5475d8d9',
|
256 |
+
'wp-admin/options-discussion.php' => 'e10901812e3e28a2fb138843285aa7f5',
|
257 |
+
'wp-admin/options-general.php' => '5d4f320c681787957963a6e00548a7d3',
|
258 |
+
'wp-admin/options-head.php' => '16536ddb6e35433770f5269a80a9cf0f',
|
259 |
+
'wp-admin/options-media.php' => '92274a35f5f6cacdaabe605970aee6ac',
|
260 |
+
'wp-admin/options-misc.php' => '9b94164e9973b7aa32d4c2a41908f336',
|
261 |
+
'wp-admin/options-permalink.php' => '6b7bd80a7f9c19daeb4f0d4d31f76eec',
|
262 |
+
'wp-admin/options-privacy.php' => '942b180e8feffc42ecae4a2ad9e58e01',
|
263 |
+
'wp-admin/options-reading.php' => 'bfcf187d9d2946041be456ef8e6d4ea9',
|
264 |
+
'wp-admin/options-writing.php' => '7c0c1f88514d00047a2e0e8f57d917f0',
|
265 |
+
'wp-admin/options.php' => '2643989b8e050554b10070f524362d15',
|
266 |
+
'wp-admin/page-new.php' => 'aa59b1462889a68a71a8d98ffdd85c11',
|
267 |
+
'wp-admin/page.php' => '4f2373d5bb33bf078067771a4ed6f56e',
|
268 |
+
'wp-admin/plugin-editor.php' => 'f281fc531319443171cde14b73e8f096',
|
269 |
+
'wp-admin/plugin-install.php' => '023c6bf41d1a37f1b71e67a7302dd0a0',
|
270 |
+
'wp-admin/plugins.php' => 'b6619f40a726e7ac36f90f7977707019',
|
271 |
+
'wp-admin/post-new.php' => 'c23c90b39bb2345ea516c70d464057b1',
|
272 |
+
'wp-admin/post.php' => '6d188230b578fe9b8dc64402027c2436',
|
273 |
+
'wp-admin/press-this.php' => 'f16f34810619f656cfa6c714b36ae932',
|
274 |
+
'wp-admin/profile.php' => 'de2fd0d74ac9dd0faffa04a7c9aa05b4',
|
275 |
+
'wp-admin/revision.php' => '450523deb2eedcdd7bcf1c28dc053a1b',
|
276 |
+
'wp-admin/rtl.css' => '395db168cd1238d99584184ead0b324e',
|
277 |
+
'wp-admin/setup-config.php' => 'b50f632ad687f2884ec2a91d67800bbd',
|
278 |
+
'wp-admin/sidebar.php' => 'eea4be9ae39437e8dfabb68062bfb0d9',
|
279 |
+
'wp-admin/theme-editor.php' => '59764ad1ed424b255e821fd90c9b8035',
|
280 |
+
'wp-admin/theme-install.php' => '4d7007ac86975e5eb355451edea2afc3',
|
281 |
+
'wp-admin/themes.php' => '811a00edf47053a750fa9198b160bc26',
|
282 |
+
'wp-admin/tools.php' => '78889e58f037d26b681890f9c5b3d9db',
|
283 |
+
'wp-admin/update-core.php' => '2d7a476b1fa1a3974310366e986ef6a3',
|
284 |
+
'wp-admin/update-links.php' => '30008788bb31542ea7a4ad3f510be08b',
|
285 |
+
'wp-admin/update.php' => '746bb374d256f4aa07b0d088230498ce',
|
286 |
+
'wp-admin/upgrade-functions.php' => '33fe9811dd41ddc7f3eee22e33169ae6',
|
287 |
+
'wp-admin/upgrade.php' => 'f1c248f62d1096cff7de2520897373f4',
|
288 |
+
'wp-admin/upload.php' => '4bac64504760f1e307c07d606f572740',
|
289 |
+
'wp-admin/user-edit.php' => '27b6218a8e889dc31402546644b41aa8',
|
290 |
+
'wp-admin/user-new.php' => '4a512d13c25a87b22f98fd900deafaf8',
|
291 |
+
'wp-admin/users.php' => '9cf52b448f5e45c74c7e9b28606f4a93',
|
292 |
+
'wp-admin/widgets.php' => 'da925f49253bdbb131e58f9cc3e1039e',
|
293 |
+
'wp-admin/wp-admin.css' => '27cd5586d26660072c71e77a2e530496',
|
294 |
+
'wp-app.php' => '707b306e8c01ced508622c95eff4d880',
|
295 |
+
'wp-atom.php' => '4c9918dd470acdbef6d9fde9e1e54491',
|
296 |
+
'wp-blog-header.php' => '5d214b74e322860b09f7c3b606287171',
|
297 |
+
'wp-comments-post.php' => '630d65b09e1a99f234ce7d3400efd56a',
|
298 |
+
'wp-commentsrss2.php' => '96d5824afd7896c0913b9c43de4dd067',
|
299 |
+
'wp-config-sample.php' => '022ff109f1bf5b1aaff3487b09455702',
|
300 |
+
'wp-content/index.php' => '96137494913a1f730a592e8932af394e',
|
301 |
+
'wp-content/plugins/akismet/akismet.gif' => '67a9581cbfcbeae70439582269022c45',
|
302 |
+
'wp-content/plugins/akismet/akismet.php' => 'd5c2167c068f53caa990d92edfd8cdac',
|
303 |
+
'wp-content/plugins/akismet/readme.txt' => '4d5e52da417aa0101054bd41e6243389',
|
304 |
+
'wp-content/plugins/hello.php' => '00487ee0cfa3e15917db9bb48048deb4',
|
305 |
+
'wp-content/plugins/index.php' => '96137494913a1f730a592e8932af394e',
|
306 |
+
'wp-content/themes/classic/comments-popup.php' => '92b30369db46d783c3fb2c2d4929c5b0',
|
307 |
+
'wp-content/themes/classic/comments.php' => '51b8f64ab323a597b961bc2f58cc5bbc',
|
308 |
+
'wp-content/themes/classic/footer.php' => 'b2433c370b3a57058e9d6732485c0c01',
|
309 |
+
'wp-content/themes/classic/functions.php' => 'ada708407ce454d4bbb2c86fb19812e9',
|
310 |
+
'wp-content/themes/classic/header.php' => 'de455e9fddaf5e5f43e8473736a5308e',
|
311 |
+
'wp-content/themes/classic/index.php' => '0083d2ae8be140e3001aa019ebc196d1',
|
312 |
+
'wp-content/themes/classic/rtl.css' => '77120614911aa1c74c604db40b6f8a84',
|
313 |
+
'wp-content/themes/classic/screenshot.png' => '60baf51fc9ae291e896257973cca52db',
|
314 |
+
'wp-content/themes/classic/sidebar.php' => '3dc68f44538e33ba8d1d71147655ae72',
|
315 |
+
'wp-content/themes/classic/style.css' => 'af8bcec8729f678ca6891d94fb84d5ac',
|
316 |
+
'wp-content/themes/default/404.php' => 'b65bec68d5000e379eb69594fd72f729',
|
317 |
+
'wp-content/themes/default/archive.php' => 'df48cb3d5d31be1e16d03db2cb87f31f',
|
318 |
+
'wp-content/themes/default/archives.php' => 'd785b710f39303a8542140ceae4187fa',
|
319 |
+
'wp-content/themes/default/comments-popup.php' => '7fe71d0aacc89dfa0ca02fc54445806e',
|
320 |
+
'wp-content/themes/default/comments.php' => '13df173acf6544611c10e6c7fa0a1222',
|
321 |
+
'wp-content/themes/default/footer.php' => 'a85b134a024b9d2c57c9e115642468e0',
|
322 |
+
'wp-content/themes/default/functions.php' => '7725904936efa06d774095bc958d4fb5',
|
323 |
+
'wp-content/themes/default/header.php' => '8665c5ba9a484fb2b6c0928efdb0ed9a',
|
324 |
+
'wp-content/themes/default/image.php' => '16e3b8d3be0ff3824abe60181b3c0ebb',
|
325 |
+
'wp-content/themes/default/images/audio.jpg' => '9e02a249556a063953ae1cf1c8719a98',
|
326 |
+
'wp-content/themes/default/images/header-img.php' => 'f97e74ff319b5424a5f31409b70554ce',
|
327 |
+
'wp-content/themes/default/images/kubrickbg-ltr.jpg' => 'fb899a26d58f085c095573b4d572f7cd',
|
328 |
+
'wp-content/themes/default/images/kubrickbg-rtl.jpg' => '6a9d85b0c47fba2847f083594e15d5ef',
|
329 |
+
'wp-content/themes/default/images/kubrickbgcolor.jpg' => '59ca34439ac4985d8b7e83f17fc77916',
|
330 |
+
'wp-content/themes/default/images/kubrickbgwide.jpg' => '49ea932ba2ae3783de988f7409c1e2ee',
|
331 |
+
'wp-content/themes/default/images/kubrickfooter.jpg' => 'b92131b91f6b17f3dae54b37b5acde5d',
|
332 |
+
'wp-content/themes/default/images/kubrickheader.jpg' => '762773d093daa7fb6974b8ff759b3803',
|
333 |
+
'wp-content/themes/default/index.php' => 'c5e79b8a1213a24d4e00e55db30b787e',
|
334 |
+
'wp-content/themes/default/links.php' => '04dbeb0cf0768df26735ac1a1ea21728',
|
335 |
+
'wp-content/themes/default/page.php' => 'bfc1ff7c028f1fd8b3aacad28ec2a804',
|
336 |
+
'wp-content/themes/default/rtl.css' => '3f4f200c57792a6fb6c4bb3cbd8a5d75',
|
337 |
+
'wp-content/themes/default/screenshot.png' => 'a4f53fe2cca5d931ce3bf413156dcf52',
|
338 |
+
'wp-content/themes/default/search.php' => '2c5f95b3c960b31b9d72bbd281519fd3',
|
339 |
+
'wp-content/themes/default/sidebar.php' => '949ab46a916a65c8ff32254dd8ee8f1d',
|
340 |
+
'wp-content/themes/default/single.php' => 'df6ad8d5e28e53f1025cf47867367c37',
|
341 |
+
'wp-content/themes/default/style.css' => 'c3b996b88857e0155e95f1e3591bcea0',
|
342 |
+
'wp-content/themes/index.php' => '96137494913a1f730a592e8932af394e',
|
343 |
+
'wp-cron.php' => 'e65d828eb949e2d87e12a1e0b684fcc4',
|
344 |
+
'wp-feed.php' => 'ec83d6f441482af4d1fae9cbb59df43e',
|
345 |
+
'wp-includes/atomlib.php' => '4266adfe07df3392cc31d8c1637cf893',
|
346 |
+
'wp-includes/author-template.php' => 'eeee4fb883299d3e3e9363fc4deaa1cf',
|
347 |
+
'wp-includes/bookmark-template.php' => '9ec74411868276638b4316f3698bc945',
|
348 |
+
'wp-includes/bookmark.php' => '9d1d37873259f3a0622aa52e3f5d58ea',
|
349 |
+
'wp-includes/cache.php' => '3efb3c7097649e24436699281e9506bc',
|
350 |
+
'wp-includes/canonical.php' => 'c3dcba0d529b893cd0419f2bf2c624f6',
|
351 |
+
'wp-includes/capabilities.php' => '03bf9309bd82e4cbd94468fa6d4f5270',
|
352 |
+
'wp-includes/category-template.php' => 'd3f15173008793ddcabbb7b658203ec3',
|
353 |
+
'wp-includes/category.php' => '0bb4c78710b6255af2e9b9b312a86b84',
|
354 |
+
'wp-includes/class-feed.php' => '43014701893db5ce2b0f58c689646471',
|
355 |
+
'wp-includes/class-IXR.php' => '96e0768733bbeeaf88f351915af3c5e8',
|
356 |
+
'wp-includes/class-phpass.php' => 'd983dd632901b785e93a39e40776f51a',
|
357 |
+
'wp-includes/class-phpmailer.php' => '3e6657c8713841da6c94d4fb1970b016',
|
358 |
+
'wp-includes/class-pop3.php' => '6b89d3911c7a532c90b9ca4ae295b560',
|
359 |
+
'wp-includes/class-simplepie.php' => 'bab6390bcd184b5f72f21b4c1bb14107',
|
360 |
+
'wp-includes/class-smtp.php' => '9434751c23dde416a498c4f4eed2c542',
|
361 |
+
'wp-includes/class-snoopy.php' => '5124e56fe7317607f6eb2242ede7630f',
|
362 |
+
'wp-includes/class.wp-dependencies.php' => '582fe9c3f15503729d2c2be079cb7738',
|
363 |
+
'wp-includes/class.wp-scripts.php' => '0dc1f8b9611f5844de9693546595717b',
|
364 |
+
'wp-includes/class.wp-styles.php' => '3e01b21a2e4ec187b2c01d0e96485a1a',
|
365 |
+
'wp-includes/classes.php' => 'be842f1bf347e3ee2cea08275f96d0de',
|
366 |
+
'wp-includes/comment-template.php' => '90c1e90730fd1b4e3f243e474795d12c',
|
367 |
+
'wp-includes/comment.php' => '8bca8443169ef93cd88b8a0f88ab78ff',
|
368 |
+
'wp-includes/compat.php' => 'c88c90aaa8ab6a7cf6e56f0d6b92c4ca',
|
369 |
+
'wp-includes/cron.php' => 'cae2a4cee92ebcea0b91429ee8791e84',
|
370 |
+
'wp-includes/default-filters.php' => '13756fb823f3fa9bee42675b14b769b3',
|
371 |
+
'wp-includes/default-widgets.php' => 'a4c5277bd2f1067d2981c98b5606caeb',
|
372 |
+
'wp-includes/deprecated.php' => '96951213febbd4f9266cc10b9e94db62',
|
373 |
+
'wp-includes/feed-atom-comments.php' => 'eddf5501b84eb83327ecc0d4ab8b8fc1',
|
374 |
+
'wp-includes/feed-atom.php' => '4cb5797d085be48c8924499f2faa7b4d',
|
375 |
+
'wp-includes/feed-rdf.php' => 'a1d78f644407921f988ad94d7732045c',
|
376 |
+
'wp-includes/feed-rss.php' => '1e21cfa2c53976483aa6192c09ff9f63',
|
377 |
+
'wp-includes/feed-rss2-comments.php' => 'ac578c6a75028dcf7b408e000a4be5da',
|
378 |
+
'wp-includes/feed-rss2.php' => '0e3a592ddf682b551e9646d28c3cb143',
|
379 |
+
'wp-includes/feed.php' => '371b9e3e381e5a08e6508319dd6b9de4',
|
380 |
+
'wp-includes/formatting.php' => 'd3d168382db4a7b5426b93de535d9f48',
|
381 |
+
'wp-includes/functions.php' => 'db2b108932a6ec986e4aa58a24b1d1c1',
|
382 |
+
'wp-includes/functions.wp-scripts.php' => '3428b7c6a18ef7f827510bbd9bd53c52',
|
383 |
+
'wp-includes/functions.wp-styles.php' => 'ca8faf3374eda261f5098a2c31687430',
|
384 |
+
'wp-includes/general-template.php' => '1909f4773ffbe765fd071ce3facfea0b',
|
385 |
+
'wp-includes/gettext.php' => '5296194576098b2ce03344a2b25acbfe',
|
386 |
+
'wp-includes/http.php' => '98b5c272b999417d0ee03624b6b930ef',
|
387 |
+
'wp-includes/images/blank.gif' => '6d22e4f2d2057c6e8d6fab098e76e80f',
|
388 |
+
'wp-includes/images/crystal/archive.png' => '93a5da9e9cb5553d570a271c5b6e98fc',
|
389 |
+
'wp-includes/images/crystal/audio.png' => 'b9daa96636b39b9c94475ee4f2686e11',
|
390 |
+
'wp-includes/images/crystal/code.png' => '7943ed0e713a89c87601daec06ba272d',
|
391 |
+
'wp-includes/images/crystal/default.png' => 'd510e9e0ac0d9dd2af7a846029c69e2b',
|
392 |
+
'wp-includes/images/crystal/document.png' => 'e6d7abf70fe3653e0e7208da55b3dbdc',
|
393 |
+
'wp-includes/images/crystal/interactive.png' => 'cc537b760f40258679df957cbe061a0e',
|
394 |
+
'wp-includes/images/crystal/license.txt' => 'f01b121b601cac57c42110e8d2fc7e32',
|
395 |
+
'wp-includes/images/crystal/spreadsheet.png' => 'b3954af9d01078755e8d2e8e819bb31a',
|
396 |
+
'wp-includes/images/crystal/text.png' => '17c0cf58506a41596a42a7a28030e951',
|
397 |
+
'wp-includes/images/crystal/video.png' => 'c8caf92649ddfbd515b97a455f91d113',
|
398 |
+
'wp-includes/images/rss.png' => '0ee254a56334189fd471afeec067186f',
|
399 |
+
'wp-includes/images/smilies/icon_arrow.gif' => '394bffa679f650b7d2f22aa263cc06ba',
|
400 |
+
'wp-includes/images/smilies/icon_biggrin.gif' => 'f970a6591668c625e4b9dbd3b7a450d7',
|
401 |
+
'wp-includes/images/smilies/icon_confused.gif' => '4affed1b55e5f73c9f0675ae7d0ad823',
|
402 |
+
'wp-includes/images/smilies/icon_cool.gif' => '25c83ea511f206e88f214719dad9c88c',
|
403 |
+
'wp-includes/images/smilies/icon_cry.gif' => '7605eca95aaeda46e641745ef6f0e0b0',
|
404 |
+
'wp-includes/images/smilies/icon_eek.gif' => '52e43743e38a67d5d28845a104ca8c7d',
|
405 |
+
'wp-includes/images/smilies/icon_evil.gif' => '178255bb3fe2c3aa790c1f8ec8738504',
|
406 |
+
'wp-includes/images/smilies/icon_exclaim.gif' => 'da86bbf377f97d06047aa781a582c52f',
|
407 |
+
'wp-includes/images/smilies/icon_idea.gif' => 'aaebc9c048367118ba65e1da46bc3e08',
|
408 |
+
'wp-includes/images/smilies/icon_lol.gif' => 'b76e7729d43c4a49182d020741285bef',
|
409 |
+
'wp-includes/images/smilies/icon_mad.gif' => 'e4355c00894da1bd78341a6b54d20b56',
|
410 |
+
'wp-includes/images/smilies/icon_mrgreen.gif' => '54e8505227edae1e583cf2f9554abc3a',
|
411 |
+
'wp-includes/images/smilies/icon_neutral.gif' => '4e8b7a51c7f60a2362a4f67fbbc937e7',
|
412 |
+
'wp-includes/images/smilies/icon_question.gif' => '0518596a4eb94c32a2b2ed898bdc3549',
|
413 |
+
'wp-includes/images/smilies/icon_razz.gif' => '7aec68426aa06f01e2b1ac250e5aee62',
|
414 |
+
'wp-includes/images/smilies/icon_redface.gif' => 'd7e9d095432cbcf09375ffc782c30c23',
|
415 |
+
'wp-includes/images/smilies/icon_rolleyes.gif' => '19071b1af987946e96dcef6ce0611c6b',
|
416 |
+
'wp-includes/images/smilies/icon_sad.gif' => '5a50535a06def9d01076772e5e9d235b',
|
417 |
+
'wp-includes/images/smilies/icon_smile.gif' => '9ee646ffab71107d1a11407be52f33a5',
|
418 |
+
'wp-includes/images/smilies/icon_surprised.gif' => 'ae735b5dd659dc4b3b0f249ce59bef79',
|
419 |
+
'wp-includes/images/smilies/icon_twisted.gif' => 'c9c3d12da1e9da699e490b86d24eee85',
|
420 |
+
'wp-includes/images/smilies/icon_wink.gif' => 'f058206bb8ff732dbe8e7aa10d74c9cd',
|
421 |
+
'wp-includes/images/upload.png' => '11904681d8fc3a10d44a96acec2d9044',
|
422 |
+
'wp-includes/images/wlw/wp-comments.png' => 'f12204bb737213d9c0b530b918da182d',
|
423 |
+
'wp-includes/images/wlw/wp-icon.png' => 'e44d22b74f7ee4435e22062d5adf4a6a',
|
424 |
+
'wp-includes/images/wlw/wp-watermark.png' => 'c5a6a59365ad54aa20c71e79da9dfd7a',
|
425 |
+
'wp-includes/js/autosave.dev.js' => '10cd5dfe482cfff61d7e628a81e61922',
|
426 |
+
'wp-includes/js/autosave.js' => 'f00b01f80b2ed4e5f6753b602258874c',
|
427 |
+
'wp-includes/js/codepress/codepress.css' => '9ac88960aa13b291891f128267233040',
|
428 |
+
'wp-includes/js/codepress/codepress.html' => '930e281d2080dfe3e2d1cacedca458d7',
|
429 |
+
'wp-includes/js/codepress/codepress.js' => 'aa0c74b76c8cc60de8737d59cb0e7cdf',
|
430 |
+
'wp-includes/js/codepress/engines/gecko.js' => '7c956d369c49985b58dd290d34582219',
|
431 |
+
'wp-includes/js/codepress/engines/khtml.js' => 'd41d8cd98f00b204e9800998ecf8427e',
|
432 |
+
'wp-includes/js/codepress/engines/msie.js' => 'f3b838bc550dc9bc558227fafce84533',
|
433 |
+
'wp-includes/js/codepress/engines/older.js' => 'd41d8cd98f00b204e9800998ecf8427e',
|
434 |
+
'wp-includes/js/codepress/engines/opera.js' => 'f74fa89f8ad2fb9a181a208f10da7b85',
|
435 |
+
'wp-includes/js/codepress/images/line-numbers.png' => 'a76c9f4012abdcc34f6a5f7e5a192a8e',
|
436 |
+
'wp-includes/js/codepress/languages/asp.css' => '2d4b45ac584d7baa65fd044b523161c6',
|
437 |
+
'wp-includes/js/codepress/languages/asp.js' => '26687456026882c672818c7ecb60a15a',
|
438 |
+
'wp-includes/js/codepress/languages/autoit.css' => 'd41bb2cf55d7c5c7e47dfe3e4d86db0b',
|
439 |
+
'wp-includes/js/codepress/languages/autoit.js' => '8d361eab73d9102e860ffefe4e4f8c6a',
|
440 |
+
'wp-includes/js/codepress/languages/csharp.css' => '983220b0ee96cb5b166de574ad989d93',
|
441 |
+
'wp-includes/js/codepress/languages/csharp.js' => '83dca53adedd600821680a056d250d52',
|
442 |
+
'wp-includes/js/codepress/languages/css.css' => '7c645111eabe8877ad347cee16e592bf',
|
443 |
+
'wp-includes/js/codepress/languages/css.js' => 'aa387749d0225b801966586cb3440feb',
|
444 |
+
'wp-includes/js/codepress/languages/generic.css' => 'e971d7976986a2fb16f492975170bb22',
|
445 |
+
'wp-includes/js/codepress/languages/generic.js' => '8ab6d398feb9e9c1c77525143f05ec74',
|
446 |
+
'wp-includes/js/codepress/languages/html.css' => '7c2c3977b42d65c155c8478d7b6daf51',
|
447 |
+
'wp-includes/js/codepress/languages/html.js' => 'fb2ded83464c3fe2f1e5b637040a3a94',
|
448 |
+
'wp-includes/js/codepress/languages/java.css' => '12bc23938841da78e58634abf6496878',
|
449 |
+
'wp-includes/js/codepress/languages/java.js' => '790af578062b6477d836e3fb2a7649c0',
|
450 |
+
'wp-includes/js/codepress/languages/javascript.css' => 'dcf899b8e094d6ce00f862ccd29cd757',
|
451 |
+
'wp-includes/js/codepress/languages/javascript.js' => '4d5da44c9fa9ecadf7798348216e9ffb',
|
452 |
+
'wp-includes/js/codepress/languages/perl.css' => 'dfb384ec9b7e486a00395c1e770a34f9',
|
453 |
+
'wp-includes/js/codepress/languages/perl.js' => 'e98daf8aeacba58424d112e3f6e593c8',
|
454 |
+
'wp-includes/js/codepress/languages/php.css' => '9b73eec0ab489d7cd832fc01dac0d448',
|
455 |
+
'wp-includes/js/codepress/languages/php.js' => '62832f855a526454f812e8b67ad826e6',
|
456 |
+
'wp-includes/js/codepress/languages/ruby.css' => '271da30b0a22637d4c255abb60644870',
|
457 |
+
'wp-includes/js/codepress/languages/ruby.js' => '91e8cd2f56bca1c8f494b3be0625a0d6',
|
458 |
+
'wp-includes/js/codepress/languages/sql.css' => '02f092e68dc9db24938f5eeb3d5c8567',
|
459 |
+
'wp-includes/js/codepress/languages/sql.js' => '0dba07c9dc503965d361f900d3eac5a1',
|
460 |
+
'wp-includes/js/codepress/languages/text.css' => 'abaac598019c3320c840d668e3e51f29',
|
461 |
+
'wp-includes/js/codepress/languages/text.js' => '870cfa7de88e106a459a97e65cbe4663',
|
462 |
+
'wp-includes/js/codepress/languages/vbscript.css' => '73dca79fa86f18c94570e0e1cfc62aae',
|
463 |
+
'wp-includes/js/codepress/languages/vbscript.js' => '26687456026882c672818c7ecb60a15a',
|
464 |
+
'wp-includes/js/codepress/languages/xsl.css' => '07599e630b9c2c13da05e32cddc0033e',
|
465 |
+
'wp-includes/js/codepress/languages/xsl.js' => '9c7b6a5314b3cee0810447d6f65156e9',
|
466 |
+
'wp-includes/js/codepress/license.txt' => 'adc05bf63f3776f4f7c2950825b770a9',
|
467 |
+
'wp-includes/js/colorpicker.dev.js' => 'a513cd35728deb3db7dcb9b75da0a62d',
|
468 |
+
'wp-includes/js/colorpicker.js' => '3211fa8ad9b5ff52a438e30c3b7c2998',
|
469 |
+
'wp-includes/js/comment-reply.dev.js' => '20ef5771571f1be483869066b2830c2f',
|
470 |
+
'wp-includes/js/comment-reply.js' => '500ceaa723d95be311592bd902d6823e',
|
471 |
+
'wp-includes/js/crop/cropper.css' => 'de9cb42ec723c60deb69440104800c22',
|
472 |
+
'wp-includes/js/crop/cropper.js' => '1d97b296d918482e1273c56fbff6a8e2',
|
473 |
+
'wp-includes/js/crop/marqueeHoriz.gif' => '9b4c27fccf817923f59b78fa6099c376',
|
474 |
+
'wp-includes/js/crop/marqueeVert.gif' => '2b2adfe6df6517f146b5b7c5b86eda42',
|
475 |
+
'wp-includes/js/hoverIntent.dev.js' => 'd0d5fed467b2ac6c1b79e88ec7a8b514',
|
476 |
+
'wp-includes/js/hoverIntent.js' => '1fb2abfd1de9863aa4fb38e4c5dd8ac3',
|
477 |
+
'wp-includes/js/jcrop/Jcrop.gif' => '7a4b4c6ebdb549fcbe47408f9457493e',
|
478 |
+
'wp-includes/js/jcrop/jquery.Jcrop.css' => '3888e9f93e218814c97a146069d104f1',
|
479 |
+
'wp-includes/js/jcrop/jquery.Jcrop.dev.js' => 'ed882314c841932770eab4413337b4b0',
|
480 |
+
'wp-includes/js/jcrop/jquery.Jcrop.js' => 'ead9e5f733592ae8f9b227507de37ee6',
|
481 |
+
'wp-includes/js/jquery/interface.js' => '6bc3151d1902096d20d92f6042f85757',
|
482 |
+
'wp-includes/js/jquery/jquery.color.dev.js' => 'ec1d98b35884ecc9de0e6f058fefe6b8',
|
483 |
+
'wp-includes/js/jquery/jquery.color.js' => '5291cf4f8f19bd8692befbebc2761440',
|
484 |
+
'wp-includes/js/jquery/jquery.form.dev.js' => '820f80306571dbe0a1deb0b63496d85f',
|
485 |
+
'wp-includes/js/jquery/jquery.form.js' => '2ff1a749aeaa2a874b8bd53960e982cc',
|
486 |
+
'wp-includes/js/jquery/jquery.hotkeys.dev.js' => 'dfdd8d2cc9be955dbb8dd14aae1daf40',
|
487 |
+
'wp-includes/js/jquery/jquery.hotkeys.js' => 'f27ed67b7faedaff1bdaaad859692e6a',
|
488 |
+
'wp-includes/js/jquery/jquery.js' => '25e59325cb47d2ab5ea650d47f431a9c',
|
489 |
+
'wp-includes/js/jquery/jquery.schedule.js' => '0426b39754aa6bc766d89ea4c41bbd06',
|
490 |
+
'wp-includes/js/jquery/jquery.table-hotkeys.dev.js' => 'baa8747ae1cb2d15755733fa4f96f1b7',
|
491 |
+
'wp-includes/js/jquery/jquery.table-hotkeys.js' => 'e56f81676f199db7bf937e69a64909fa',
|
492 |
+
'wp-includes/js/jquery/suggest.dev.js' => '24afc2920f7ace150877a5bcbd39f409',
|
493 |
+
'wp-includes/js/jquery/suggest.js' => 'a4c05e4240802706a7fa33ca1e6a8c74',
|
494 |
+
'wp-includes/js/jquery/ui.core.js' => '77081f376fc4bc59694d88000fba7c3c',
|
495 |
+
'wp-includes/js/jquery/ui.dialog.js' => '58e37a6a9905f9aa09170df90c5517e2',
|
496 |
+
'wp-includes/js/jquery/ui.draggable.js' => '10f4e2da1843f09b7398217ce96402e2',
|
497 |
+
'wp-includes/js/jquery/ui.droppable.js' => '422b880abd2de6c562ce1956ed6ba842',
|
498 |
+
'wp-includes/js/jquery/ui.resizable.js' => '5c04b89c0237cb4408d364b38d0888a2',
|
499 |
+
'wp-includes/js/jquery/ui.selectable.js' => 'bcb1ae0fac5fa2d18aa6b36ab65c59d3',
|
500 |
+
'wp-includes/js/jquery/ui.sortable.js' => '8b26b1568a703a7ff4cc4653b4982c0a',
|
501 |
+
'wp-includes/js/jquery/ui.tabs.js' => '92321373c9dcad8d096abd76ba18c02d',
|
502 |
+
'wp-includes/js/prototype.js' => 'bab4179aef164e96e866b03ac432bdf7',
|
503 |
+
'wp-includes/js/quicktags.dev.js' => '0ee241770ed514d28020ddedc9db2326',
|
504 |
+
'wp-includes/js/quicktags.js' => '954c48f2a654620e6c8c286d6016d224',
|
505 |
+
'wp-includes/js/scriptaculous/builder.js' => '92cc9bddf6afcff5e641eeba9e3eacc0',
|
506 |
+
'wp-includes/js/scriptaculous/controls.js' => 'fcf61880c81c69a8c892020de19216e6',
|
507 |
+
'wp-includes/js/scriptaculous/dragdrop.js' => 'e07ef5d6af2980f8e72cd74e67690a54',
|
508 |
+
'wp-includes/js/scriptaculous/effects.js' => '29a97dc0bf45c93560b28421843b75c2',
|
509 |
+
'wp-includes/js/scriptaculous/MIT-LICENSE' => 'b72c811c3e4b902332903aacd47eef47',
|
510 |
+
'wp-includes/js/scriptaculous/prototype.js' => 'bab4179aef164e96e866b03ac432bdf7',
|
511 |
+
'wp-includes/js/scriptaculous/scriptaculous.js' => 'b4c44f312deb6cd7f76f8684276da04c',
|
512 |
+
'wp-includes/js/scriptaculous/slider.js' => 'e38b722aa3e5bf6f52c521d9fca0235f',
|
513 |
+
'wp-includes/js/scriptaculous/sound.js' => 'd654e517c3813d9a21280b6c2e58a8db',
|
514 |
+
'wp-includes/js/scriptaculous/unittest.js' => 'b41840d00193331f0fb68fc54f1085c6',
|
515 |
+
'wp-includes/js/scriptaculous/wp-scriptaculous.js' => '1b6a98a2e2b55d90a88524faea79f0a8',
|
516 |
+
'wp-includes/js/swfobject.js' => 'eaa5417940c71f441b016b12c534665d',
|
517 |
+
'wp-includes/js/swfupload/handlers.dev.js' => '6659d58b56b0aa9121f88dd048acee1c',
|
518 |
+
'wp-includes/js/swfupload/handlers.js' => 'fd1fdc830e7c1c1e4b6d3f0b29a2da05',
|
519 |
+
'wp-includes/js/swfupload/plugins/swfupload.cookies.js' => '7fa57ec00dda88dd6b5c2037ccb4d5cf',
|
520 |
+
'wp-includes/js/swfupload/plugins/swfupload.queue.js' => '9953522fbd4a1b02bbf635a92d76cd8f',
|
521 |
+
'wp-includes/js/swfupload/plugins/swfupload.speed.js' => '415a3787846bb6c2d745602c2afb73ac',
|
522 |
+
'wp-includes/js/swfupload/plugins/swfupload.swfobject.js' => 'cea8193a75561bb8ba40ea1809b96c67',
|
523 |
+
'wp-includes/js/swfupload/swfupload-all.js' => '8c132780860b2d20c1837c6e05869393',
|
524 |
+
'wp-includes/js/swfupload/swfupload.js' => '603bd14299f61a7329b2d353b2b56c2f',
|
525 |
+
'wp-includes/js/swfupload/swfupload.swf' => '3a1c6cc728dddc258091a601f28a9c12',
|
526 |
+
'wp-includes/js/thickbox/loadingAnimation.gif' => 'c33734a1bf58bec328ffa27872e96ae1',
|
527 |
+
'wp-includes/js/thickbox/macFFBgHack.png' => '6e63d8058c61e28953cc285de8d5c37d',
|
528 |
+
'wp-includes/js/thickbox/tb-close.png' => '7c088dbddefa7aff7a860580a98f3e30',
|
529 |
+
'wp-includes/js/thickbox/thickbox.css' => '9e2094eaecb034d8e9d3d726518aab05',
|
530 |
+
'wp-includes/js/thickbox/thickbox.js' => '4988c924f8df0898cabbca27c2dc57ef',
|
531 |
+
'wp-includes/js/tinymce/blank.htm' => 'f3519538055a4d1fdbe39fb84def65a5',
|
532 |
+
'wp-includes/js/tinymce/langs/wp-langs-en.js' => '6f3b5dc08823e70c717422e13b3ce1c9',
|
533 |
+
'wp-includes/js/tinymce/langs/wp-langs.php' => '03aa60302f8952eefa358b771284ee21',
|
534 |
+
'wp-includes/js/tinymce/license.txt' => '0571cf371683742c14f1735079a78e38',
|
535 |
+
'wp-includes/js/tinymce/plugins/directionality/editor_plugin.js' => '653c3a89058b610fd12242faf4f01cdf',
|
536 |
+
'wp-includes/js/tinymce/plugins/fullscreen/editor_plugin.js' => '994124fa3bbad1cfc9fb9900c10a6b00',
|
537 |
+
'wp-includes/js/tinymce/plugins/fullscreen/fullscreen.htm' => 'ca9817da53d28adaee86603ca94d69dc',
|
538 |
+
'wp-includes/js/tinymce/plugins/inlinepopups/editor_plugin.js' => '047a9618f11ee697eec716c88dedd8e8',
|
539 |
+
'wp-includes/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/alert.gif' => '56646a5e811547c8bc3d1b9790496b89',
|
540 |
+
'wp-includes/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/button.gif' => '9e911a2c3cb4720d44844ef2d1832a51',
|
541 |
+
'wp-includes/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/buttons.gif' => '2e101a4aa637bfd16cef7e763e8c2eed',
|
542 |
+
'wp-includes/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/confirm.gif' => '44f1d55b14fbc66b98f3899d90611c3c',
|
543 |
+
'wp-includes/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/corners.gif' => '2e89a17a473f0e488f3e789ce998f064',
|
544 |
+
'wp-includes/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/drag.gif' => 'c8984e70b184ca51bc427aa106c29453',
|
545 |
+
'wp-includes/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/horizontal.gif' => '0365e75dd4a9ad61dc98dcb641207c21',
|
546 |
+
'wp-includes/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/vertical.gif' => '193884a332e91059643448ed4bde2e04',
|
547 |
+
'wp-includes/js/tinymce/plugins/inlinepopups/skins/clearlooks2/window.css' => '0fb7cbeaf364b4377fb3126384482aec',
|
548 |
+
'wp-includes/js/tinymce/plugins/inlinepopups/template.htm' => '2b2ca7c291b8b1b867b44a6e5bca7991',
|
549 |
+
'wp-includes/js/tinymce/plugins/media/css/content.css' => 'ebcad73e7f6785a308328129aa90d5cb',
|
550 |
+
'wp-includes/js/tinymce/plugins/media/css/media.css' => '51795abbefc981b9f77083afd672a495',
|
551 |
+
'wp-includes/js/tinymce/plugins/media/editor_plugin.js' => '8711a73c0d6d417b635bf646dc5091c8',
|
552 |
+
'wp-includes/js/tinymce/plugins/media/img/flash.gif' => '6c69b02015d09280332ff8b07e4ea2f3',
|
553 |
+
'wp-includes/js/tinymce/plugins/media/img/flv_player.swf' => 'fe011e9725b2722b59bb8ef4991bf6bb',
|
554 |
+
'wp-includes/js/tinymce/plugins/media/img/quicktime.gif' => '9a6a9fdead205b125c07ea37e71ed4f1',
|
555 |
+
'wp-includes/js/tinymce/plugins/media/img/realmedia.gif' => 'b9734ee16d790e67bea01046feba28b7',
|
556 |
+
'wp-includes/js/tinymce/plugins/media/img/shockwave.gif' => 'baa643b587565755157618032dc93e3c',
|
557 |
+
'wp-includes/js/tinymce/plugins/media/img/trans.gif' => '12bf9e19374920de3146a64775f46a5e',
|
558 |
+
'wp-includes/js/tinymce/plugins/media/img/windowsmedia.gif' => 'c327cd167b3a7bc263d908b0d0154ead',
|
559 |
+
'wp-includes/js/tinymce/plugins/media/js/embed.js' => '5df3783492b848adde42124a1e9cf383',
|
560 |
+
'wp-includes/js/tinymce/plugins/media/js/media.js' => 'cac808d6007f1003b334e315f01ceec6',
|
561 |
+
'wp-includes/js/tinymce/plugins/media/media.htm' => '03453eabdffe90cf7e9406d618b78c10',
|
562 |
+
'wp-includes/js/tinymce/plugins/paste/blank.htm' => '5dbbcbc1f4bcbe5fe9f22905a7838b57',
|
563 |
+
'wp-includes/js/tinymce/plugins/paste/editor_plugin.js' => 'e203448d1abcf685301d3f6a24251ced',
|
564 |
+
'wp-includes/js/tinymce/plugins/paste/js/pastetext.js' => '9db07e9a6d27f06ee292ee9d0793a725',
|
565 |
+
'wp-includes/js/tinymce/plugins/paste/js/pasteword.js' => '179e37760324b39e7d41b61bc707abb3',
|
566 |
+
'wp-includes/js/tinymce/plugins/paste/pastetext.htm' => 'b82c2ee67a44ac0915ba6693ab622a36',
|
567 |
+
'wp-includes/js/tinymce/plugins/paste/pasteword.htm' => 'd958f3b1931464c30d68b499231f9d63',
|
568 |
+
'wp-includes/js/tinymce/plugins/safari/blank.htm' => 'c9a4909a579f24cd23fc0ae847e06241',
|
569 |
+
'wp-includes/js/tinymce/plugins/safari/editor_plugin.js' => '9bf27e117e423eea7754fb6e471276ee',
|
570 |
+
'wp-includes/js/tinymce/plugins/spellchecker/classes/EnchantSpell.php' => '5688c3912e266411fea5c40e452a616e',
|
571 |
+
'wp-includes/js/tinymce/plugins/spellchecker/classes/GoogleSpell.php' => 'c6481cd9c06b9e3e4ed27c3ffdadee9b',
|
572 |
+
'wp-includes/js/tinymce/plugins/spellchecker/classes/PSpell.php' => 'dbc6556b5e976cbe545a0760c16d4ab9',
|
573 |
+
'wp-includes/js/tinymce/plugins/spellchecker/classes/PSpellShell.php' => '14be5b8b59128d99893c4bc2031c10f8',
|
574 |
+
'wp-includes/js/tinymce/plugins/spellchecker/classes/SpellChecker.php' => '69d90a002a9989573165fb83891f83df',
|
575 |
+
'wp-includes/js/tinymce/plugins/spellchecker/classes/utils/JSON.php' => '45c8c0209512901903c4892950a5378b',
|
576 |
+
'wp-includes/js/tinymce/plugins/spellchecker/classes/utils/Logger.php' => '317dfd9569fb1169121809b4b7bcf36e',
|
577 |
+
'wp-includes/js/tinymce/plugins/spellchecker/config.php' => 'fe7abad1a001941469e265cb1d588c38',
|
578 |
+
'wp-includes/js/tinymce/plugins/spellchecker/css/content.css' => 'd236d4333281b4eae7a1e2b514b691f4',
|
579 |
+
'wp-includes/js/tinymce/plugins/spellchecker/editor_plugin.js' => '1cb7ad26e99573dae76e9db4bf8eacae',
|
580 |
+
'wp-includes/js/tinymce/plugins/spellchecker/img/wline.gif' => 'c136c9f8e00718a98947a21d8adbcc56',
|
581 |
+
'wp-includes/js/tinymce/plugins/spellchecker/includes/general.php' => '00038d123e736cce0e321612695dc596',
|
582 |
+
'wp-includes/js/tinymce/plugins/spellchecker/rpc.php' => 'e650bc1a0db28fa7b6402ebf83349ed1',
|
583 |
+
'wp-includes/js/tinymce/plugins/tabfocus/editor_plugin.js' => '1a8e22759ea3340a010af52f4210a26e',
|
584 |
+
'wp-includes/js/tinymce/plugins/wordpress/css/content.css' => '947de1cd730bff4b3cea0bc8c5ec1178',
|
585 |
+
'wp-includes/js/tinymce/plugins/wordpress/editor_plugin.dev.js' => 'b1a44bb492d150ba2fc3ef091649a6ac',
|
586 |
+
'wp-includes/js/tinymce/plugins/wordpress/editor_plugin.js' => 'dd5628adfb50edf54fe9f81e2eb9d210',
|
587 |
+
'wp-includes/js/tinymce/plugins/wordpress/img/audio.gif' => 'edc58dce8aab5d12e83fd4aac849cc05',
|
588 |
+
'wp-includes/js/tinymce/plugins/wordpress/img/help.gif' => '4cd4a5d2cdcd74c8aeced17813afd6ea',
|
589 |
+
'wp-includes/js/tinymce/plugins/wordpress/img/image.gif' => 'c25dc2e7e5c0c2203ca0ca516ca852a9',
|
590 |
+
'wp-includes/js/tinymce/plugins/wordpress/img/media.gif' => 'b1a62e29a44128ae7a3d932b4941ea33',
|
591 |
+
'wp-includes/js/tinymce/plugins/wordpress/img/more.gif' => 'dff3bc0a01a614b601b7826415bfe4ca',
|
592 |
+
'wp-includes/js/tinymce/plugins/wordpress/img/more_bug.gif' => 'c38cc928b95c0be49ec083648084d190',
|
593 |
+
'wp-includes/js/tinymce/plugins/wordpress/img/page.gif' => 'ec8d1ed1b0fd137cacdda9e316ebed31',
|
594 |
+
'wp-includes/js/tinymce/plugins/wordpress/img/page_bug.gif' => '32a68c86a6beffdd042abf0b0c595328',
|
595 |
+
'wp-includes/js/tinymce/plugins/wordpress/img/toolbars.gif' => '33e46a907572061c981e459ae022b40d',
|
596 |
+
'wp-includes/js/tinymce/plugins/wordpress/img/trans.gif' => '12bf9e19374920de3146a64775f46a5e',
|
597 |
+
'wp-includes/js/tinymce/plugins/wordpress/img/video.gif' => '10a455edf8439d00599854ffd2add437',
|
598 |
+
'wp-includes/js/tinymce/plugins/wpeditimage/css/editimage-rtl.css' => '9afbd20302a56bc9e0d7bcc5c3c61c7c',
|
599 |
+
'wp-includes/js/tinymce/plugins/wpeditimage/css/editimage.css' => '316db36315e941a43831b726bc7cc7ad',
|
600 |
+
'wp-includes/js/tinymce/plugins/wpeditimage/editimage.html' => '60340807d945876ff6da82338c84153a',
|
601 |
+
'wp-includes/js/tinymce/plugins/wpeditimage/editor_plugin.dev.js' => '7e2136d5e077774bb677dcf3576cb203',
|
602 |
+
'wp-includes/js/tinymce/plugins/wpeditimage/editor_plugin.js' => 'c4c59bfbf6ac1101ee884761914d76da',
|
603 |
+
'wp-includes/js/tinymce/plugins/wpeditimage/img/delete.png' => '748b2a72b7e2aeec7e32f3f1846b5ff9',
|
604 |
+
'wp-includes/js/tinymce/plugins/wpeditimage/img/image.png' => 'a7a2baa789bbfef570b3c4be0a838ebd',
|
605 |
+
'wp-includes/js/tinymce/plugins/wpeditimage/js/editimage.js' => 'bb5ecafedc219aac400807dc283fe273',
|
606 |
+
'wp-includes/js/tinymce/plugins/wpgallery/editor_plugin.dev.js' => '208d2715778f5e1f2086e5efba4be695',
|
607 |
+
'wp-includes/js/tinymce/plugins/wpgallery/editor_plugin.js' => 'c9fdf1db2027922e9bbdcd77dac6fb8b',
|
608 |
+
'wp-includes/js/tinymce/plugins/wpgallery/img/delete.png' => '748b2a72b7e2aeec7e32f3f1846b5ff9',
|
609 |
+
'wp-includes/js/tinymce/plugins/wpgallery/img/edit.png' => '9554f2aa129d2d01e247a73669bb832d',
|
610 |
+
'wp-includes/js/tinymce/plugins/wpgallery/img/gallery.png' => '1f35ba36cb43f1c5382a13e6941483df',
|
611 |
+
'wp-includes/js/tinymce/plugins/wpgallery/img/t.gif' => '12bf9e19374920de3146a64775f46a5e',
|
612 |
+
'wp-includes/js/tinymce/themes/advanced/about.htm' => '7e80709c52260a0022f7f336b72cd71b',
|
613 |
+
'wp-includes/js/tinymce/themes/advanced/anchor.htm' => 'b84f177905e368a80d9a25e728182794',
|
614 |
+
'wp-includes/js/tinymce/themes/advanced/charmap.htm' => 'cf2e5b2fec3c06f763bd176d87ed4d0e',
|
615 |
+
'wp-includes/js/tinymce/themes/advanced/color_picker.htm' => 'a7a73c580a302db16002989c84c5bf4c',
|
616 |
+
'wp-includes/js/tinymce/themes/advanced/editor_template.js' => 'e4f47b78c98d99433c91ec4a145f7ff5',
|
617 |
+
'wp-includes/js/tinymce/themes/advanced/image.htm' => '08e69d593392dd50963dcb346ca0071c',
|
618 |
+
'wp-includes/js/tinymce/themes/advanced/img/colorpicker.jpg' => '02ae48639aa5729e6a40fb64455c32a2',
|
619 |
+
'wp-includes/js/tinymce/themes/advanced/img/fm.gif' => 'ac4a63cad5d195d24ec4c91121e9be2f',
|
620 |
+
'wp-includes/js/tinymce/themes/advanced/img/gotmoxie.png' => 'c1fb3ef2ad854a88d9eb8ee32d15e4ad',
|
621 |
+
'wp-includes/js/tinymce/themes/advanced/img/icons.gif' => 'e893a1f9e0c9c6240ba28756cf838f5f',
|
622 |
+
'wp-includes/js/tinymce/themes/advanced/img/sflogo.png' => '18cbf7ea0ccc1d0aa42260aa9787af6f',
|
623 |
+
'wp-includes/js/tinymce/themes/advanced/js/about.js' => 'cd4f25e57d9c7c3c5eaed2b4234c8787',
|
624 |
+
'wp-includes/js/tinymce/themes/advanced/js/anchor.js' => '8988b8d83a5d753ddcb3600b976780fd',
|
625 |
+
'wp-includes/js/tinymce/themes/advanced/js/charmap.js' => '27f30d99721bd0ff665a443c49a22702',
|
626 |
+
'wp-includes/js/tinymce/themes/advanced/js/color_picker.js' => '2ce934aa3086cba10c51c6d055177f8f',
|
627 |
+
'wp-includes/js/tinymce/themes/advanced/js/image.js' => 'fd4ba60e7499e1e06d8efc5841073a44',
|
628 |
+
'wp-includes/js/tinymce/themes/advanced/js/link.js' => '85e3d12f288b9ead43fd6f4e3b341815',
|
629 |
+
'wp-includes/js/tinymce/themes/advanced/js/source_editor.js' => 'cd02d9651fd1f076f4ac5d7d7961bd58',
|
630 |
+
'wp-includes/js/tinymce/themes/advanced/link.htm' => '86603ac86e519d4d65fe077fb4d8d0be',
|
631 |
+
'wp-includes/js/tinymce/themes/advanced/skins/default/content.css' => '2f921f2c07fa24953530b23bf2000e0a',
|
632 |
+
'wp-includes/js/tinymce/themes/advanced/skins/default/dialog.css' => '61f260cc574683934afbb0af6917179c',
|
633 |
+
'wp-includes/js/tinymce/themes/advanced/skins/default/img/buttons.png' => '1e0acdc2135897e6a95bb40cfde2fbc6',
|
634 |
+
'wp-includes/js/tinymce/themes/advanced/skins/default/img/items.gif' => '5cb42865ce70a58d420786854fed4ae1',
|
635 |
+
'wp-includes/js/tinymce/themes/advanced/skins/default/img/menu_arrow.gif' => 'e21752451a9d80e276fef7b602bdbdba',
|
636 |
+
'wp-includes/js/tinymce/themes/advanced/skins/default/img/menu_check.gif' => 'c7d003885737f94768eecae49dcbca63',
|
637 |
+
'wp-includes/js/tinymce/themes/advanced/skins/default/img/progress.gif' => '50c5e3e79b276c92df6cc52caeb464f0',
|
638 |
+
'wp-includes/js/tinymce/themes/advanced/skins/default/img/tabs.gif' => '93f97588a35da1f45fdcb975d4380913',
|
639 |
+
'wp-includes/js/tinymce/themes/advanced/skins/default/ui.css' => '95f5bbc6ea992fcb641f0275025dc438',
|
640 |
+
'wp-includes/js/tinymce/themes/advanced/skins/o2k7/content.css' => '4a0a94603795b7bfc41ff76ea8889db7',
|
641 |
+
'wp-includes/js/tinymce/themes/advanced/skins/o2k7/dialog.css' => '55252ba2c0ed8e6cf62e28e111cb3b4d',
|
642 |
+
'wp-includes/js/tinymce/themes/advanced/skins/o2k7/img/button_bg.png' => '8c9b1f0ee9deb6374983650edbd6ddfc',
|
643 |
+
'wp-includes/js/tinymce/themes/advanced/skins/o2k7/img/button_bg_black.png' => 'a5ad448e9c25120cb7e05fffe4a6234f',
|
644 |
+
'wp-includes/js/tinymce/themes/advanced/skins/o2k7/img/button_bg_silver.png' => '5690ef573f4dc74ec3eb4d101806976e',
|
645 |
+
'wp-includes/js/tinymce/themes/advanced/skins/o2k7/ui.css' => 'b9db394d414b1d2f0d8930522e676c5d',
|
646 |
+
'wp-includes/js/tinymce/themes/advanced/skins/o2k7/ui_black.css' => 'dd03578fd4e33798de6d86c4564e4c66',
|
647 |
+
'wp-includes/js/tinymce/themes/advanced/skins/o2k7/ui_silver.css' => '623a420867f1da38168b5ab0eac1afcc',
|
648 |
+
'wp-includes/js/tinymce/themes/advanced/skins/wp_theme/content.css' => 'a1b36551d8a606622d8fa44f42850ec7',
|
649 |
+
'wp-includes/js/tinymce/themes/advanced/skins/wp_theme/dialog.css' => '9c93f6a41d7c635d738dd6796536a7c3',
|
650 |
+
'wp-includes/js/tinymce/themes/advanced/skins/wp_theme/img/butt2.png' => 'f8177b2875cc2f1988f3a8645edfddb8',
|
651 |
+
'wp-includes/js/tinymce/themes/advanced/skins/wp_theme/img/button_bg.png' => '8c9b1f0ee9deb6374983650edbd6ddfc',
|
652 |
+
'wp-includes/js/tinymce/themes/advanced/skins/wp_theme/img/down_arrow.gif' => '7bbbc00f708a791dc4e674f9e21aa2ca',
|
653 |
+
'wp-includes/js/tinymce/themes/advanced/skins/wp_theme/img/fade-butt.png' => 'e6c8b1c6db50db66bf04da9bbbe3ee0e',
|
654 |
+
'wp-includes/js/tinymce/themes/advanced/skins/wp_theme/img/separator.gif' => '9636c1e228dc5d7c58ec2722a6d9ec23',
|
655 |
+
'wp-includes/js/tinymce/themes/advanced/skins/wp_theme/img/tabs.gif' => '93f97588a35da1f45fdcb975d4380913',
|
656 |
+
'wp-includes/js/tinymce/themes/advanced/skins/wp_theme/ui.css' => 'a464cac9829cb4b064c6e3f91fcccb7c',
|
657 |
+
'wp-includes/js/tinymce/themes/advanced/source_editor.htm' => '4b5f5a3e7846a30fe9dcb878f9e8f2cb',
|
658 |
+
'wp-includes/js/tinymce/tiny_mce.js' => '56c606da29ea9b8f8d823eeab8038ee8',
|
659 |
+
'wp-includes/js/tinymce/tiny_mce_popup.js' => 'd9e6163fd6707bf0582635247bc17a5c',
|
660 |
+
'wp-includes/js/tinymce/utils/editable_selects.js' => '6ae9d8d2ae563c29652b41b0ace13cc1',
|
661 |
+
'wp-includes/js/tinymce/utils/form_utils.js' => '950d229c37a570fc26a13da71d73f9b8',
|
662 |
+
'wp-includes/js/tinymce/utils/mctabs.js' => '7727d6ef7c831c363ebfe40fc3f4e144',
|
663 |
+
'wp-includes/js/tinymce/utils/validate.js' => '6fc5abb84e8ba8ba87b12ad6806f48d1',
|
664 |
+
'wp-includes/js/tinymce/wp-mce-help.php' => '396ace74429f86a0e7ea9c196554e537',
|
665 |
+
'wp-includes/js/tinymce/wp-tinymce.js' => '9d2c582fe6cb12203ad0b857a029bd33',
|
666 |
+
'wp-includes/js/tinymce/wp-tinymce.js.gz' => '953c4f11c4e771f648c1fe2d51c597fb',
|
667 |
+
'wp-includes/js/tinymce/wp-tinymce.php' => '36a26bc150dabe78aea06beff9058063',
|
668 |
+
'wp-includes/js/tw-sack.dev.js' => 'b989a5bd84f6ebcbc1393ec003e6e991',
|
669 |
+
'wp-includes/js/tw-sack.js' => 'f103f8c3fb6d11562faf82f3943459c7',
|
670 |
+
'wp-includes/js/wp-ajax-response.dev.js' => 'ddc65b357dbc1b10b4a9eeb97a4bd704',
|
671 |
+
'wp-includes/js/wp-ajax-response.js' => '18554862b00befc3db669e3c4af0f568',
|
672 |
+
'wp-includes/js/wp-lists.dev.js' => '3307a4b7fce5e39e3c13f0e3478cbb5d',
|
673 |
+
'wp-includes/js/wp-lists.js' => '2dfd550d6f8fc069af07cbc3464f152a',
|
674 |
+
'wp-includes/kses.php' => '0a3e7ca281994629c2b091e537e4768e',
|
675 |
+
'wp-includes/l10n.php' => '2191989044dae399616ea2d3a2b856db',
|
676 |
+
'wp-includes/link-template.php' => '687cfc21bcc3b13c6f1d8ec022e8ba45',
|
677 |
+
'wp-includes/locale.php' => '42760339c4260cddfab481d88bdc6929',
|
678 |
+
'wp-includes/media.php' => 'd7b38dee5a651413b7f40c823aad1a86',
|
679 |
+
'wp-includes/pluggable.php' => '0465eaba3ecfa5ebd9264ba58b2d1863',
|
680 |
+
'wp-includes/plugin.php' => 'f0d038d8bdb368ea4bc42e1145f3eeca',
|
681 |
+
'wp-includes/pomo/entry.php' => '9a81062822fedc441fc78fdde236e828',
|
682 |
+
'wp-includes/pomo/mo.php' => '44ffa96a94e1fbaee380b492a4743ddd',
|
683 |
+
'wp-includes/pomo/po.php' => '2dbafc1b5a3b744fafcb87b084767f0d',
|
684 |
+
'wp-includes/pomo/streams.php' => 'db2cea2608720e1e990c3107b184915e',
|
685 |
+
'wp-includes/pomo/translations.php' => '74140db3d59851b6408c4cab7465bd14',
|
686 |
+
'wp-includes/post-template.php' => 'c9595436224ad85c3fe2d2caf5179306',
|
687 |
+
'wp-includes/post.php' => '9700da001f10b7facafb0557ed263f22',
|
688 |
+
'wp-includes/query.php' => '90dfacd0c7cf00db760535f4b1d5d930',
|
689 |
+
'wp-includes/registration-functions.php' => '9621cfd0209996069892c3214bae4063',
|
690 |
+
'wp-includes/registration.php' => 'a800b21a86328185de2e1ef65304efa1',
|
691 |
+
'wp-includes/rewrite.php' => 'b8dbe81f44e079a1c9efca93c88444ad',
|
692 |
+
'wp-includes/rss-functions.php' => '05445df90595598ba7523ad41119ca9d',
|
693 |
+
'wp-includes/rss.php' => '082d21011a174ce558228df2fff3ebd5',
|
694 |
+
'wp-includes/script-loader.php' => '347dfeb2db4558a5385e50eaffbd2e61',
|
695 |
+
'wp-includes/shortcodes.php' => '58d0eee6e67c75b689d6663e3eaa3acb',
|
696 |
+
'wp-includes/streams.php' => '45adcc60484e4cea869dc82aa44a84e5',
|
697 |
+
'wp-includes/taxonomy.php' => 'eccfcfdb0471dbccbc86620d5c915459',
|
698 |
+
'wp-includes/template-loader.php' => '2bec981bd5faa5f0ffd1a4a336123bf1',
|
699 |
+
'wp-includes/Text/Diff/Engine/native.php' => 'e247115bac139d02c6187d21e9d2e5de',
|
700 |
+
'wp-includes/Text/Diff/Engine/shell.php' => 'd41590be828b5ccd5a09ea48d6cc117c',
|
701 |
+
'wp-includes/Text/Diff/Engine/string.php' => 'ec8296ac7f8f6a9d84ffa09d8153dd72',
|
702 |
+
'wp-includes/Text/Diff/Engine/xdiff.php' => '741ea02215b1ca4eb1c8d64a07f3a450',
|
703 |
+
'wp-includes/Text/Diff/Renderer/inline.php' => '29ef69f38612d424595e338d43008746',
|
704 |
+
'wp-includes/Text/Diff/Renderer.php' => '29d72d407f3c7e0362927215688d50f1',
|
705 |
+
'wp-includes/Text/Diff.php' => '9e7164b2b3f56bbedc4e3383306261d0',
|
706 |
+
'wp-includes/theme.php' => '66e1632a0cc13076e1f52e80ea3c2d90',
|
707 |
+
'wp-includes/update.php' => '720be5817f33aee75ce5ddcd576e326f',
|
708 |
+
'wp-includes/user.php' => '26b61667c947a336dd2dd548cd6c2703',
|
709 |
+
'wp-includes/vars.php' => '2dd14f006c7f5f487317b4604d886528',
|
710 |
+
'wp-includes/version.php' => '8de61a5a2ab8e75342dc57e328d71b21',
|
711 |
+
'wp-includes/widgets.php' => '84ed20db54832ba0993931f8772bb723',
|
712 |
+
'wp-includes/wlwmanifest.xml' => '8da76e497b2666873eaa3b2f9f19617b',
|
713 |
+
'wp-includes/wp-db.php' => '9a1b0140ad2fc8658e2a64ab7d56440a',
|
714 |
+
'wp-includes/wp-diff.php' => 'f29611675ebc56fc420ee4d7b8eecf90',
|
715 |
+
'wp-links-opml.php' => '8f6823712a343058ed74b9f132804a45',
|
716 |
+
'wp-load.php' => '8be2dfe7b0f86a84d27c9ad98bc50591',
|
717 |
+
'wp-login.php' => '33d7b90462627674dfe53cc85317f9d6',
|
718 |
+
'wp-mail.php' => '34e33f2f88fe36295b5d9cc7838a5ae6',
|
719 |
+
'wp-pass.php' => 'b2d13ddac2f77eaeb09717da09b21e53',
|
720 |
+
'wp-rdf.php' => 'efab873ea26cfa56e6f4aa4c3eaa988b',
|
721 |
+
'wp-register.php' => '287dc5ab04cb97e1a45873f1c87525ca',
|
722 |
+
'wp-rss.php' => '6e22f880b0db7beababe042e995cea43',
|
723 |
+
'wp-rss2.php' => 'ec83d6f441482af4d1fae9cbb59df43e',
|
724 |
+
'wp-settings.php' => '833527f7bc8916434420e3a6d91b290c',
|
725 |
+
'wp-trackback.php' => '0723b47768875a2c89b5af969741b03f',
|
726 |
+
'xmlrpc.php' => '90a7b9b557f12b29ab38401fa1dc94dc',
|
727 |
+
);
|
728 |
+
?>
|
readme.txt
CHANGED
@@ -1,8 +1,8 @@
|
|
1 |
=== WordPress Exploit Scanner ===
|
2 |
Contributors: donncha, duck_, ryan, azaozz
|
3 |
Tags: hacking, spam, hack, crack, exploit, vulnerability
|
4 |
-
Tested up to: 2.8.
|
5 |
-
Stable tag: 0.
|
6 |
Requires at least: 2.7.1
|
7 |
Donate link: http://ocaoimh.ie/wordpress-plugins/gifts-and-donations/
|
8 |
|
@@ -13,12 +13,16 @@ This plugin searches the files on your website, and the posts and comments table
|
|
13 |
|
14 |
It does not remove anything. That is left to the user to do.
|
15 |
|
16 |
-
MD5 for version 0.
|
17 |
-
MD5 for version 0.
|
18 |
-
MD5 for version 0.
|
19 |
-
MD5 for version 0.4: 54f04bb11ab369063a9c8cc34fe9ee86
|
20 |
-
MD5 for version 0.
|
21 |
-
MD5 for
|
|
|
|
|
|
|
|
|
22 |
|
23 |
See the [WordPress Exploit Scanner homepage](http://ocaoimh.ie/exploit-scanner/) for further information.
|
24 |
|
1 |
=== WordPress Exploit Scanner ===
|
2 |
Contributors: donncha, duck_, ryan, azaozz
|
3 |
Tags: hacking, spam, hack, crack, exploit, vulnerability
|
4 |
+
Tested up to: 2.8.6
|
5 |
+
Stable tag: 0.7
|
6 |
Requires at least: 2.7.1
|
7 |
Donate link: http://ocaoimh.ie/wordpress-plugins/gifts-and-donations/
|
8 |
|
13 |
|
14 |
It does not remove anything. That is left to the user to do.
|
15 |
|
16 |
+
* MD5 for version 0.7: 1d4b6797f10685bd271ebc1ec17b782c
|
17 |
+
* MD5 for version 0.6: a36d9eb168e51b62c61b1ab4afee8243
|
18 |
+
* MD5 for version 0.5: e434bad527c860ebf95777c05d551784
|
19 |
+
* MD5 for version 0.4: 54f04bb11ab369063a9c8cc34fe9ee86
|
20 |
+
* MD5 for version 0.3: 44cc8a46861f18698789357fa2fc7e60
|
21 |
+
* MD5 for version 0.2: 48dd892fb9c41899af14e9cf94ec7ea8
|
22 |
+
* MD5 for version 0.1: 6a88a18a37c4add7dabd72fc97be13b6
|
23 |
+
|
24 |
+
* MD5 for hashes-2.8.6.php: 32a343d966821502113b7813c9195389
|
25 |
+
* MD5 for hashes-2.8.5.php: a64eb922fa9d21bd43398467e8eb67cc
|
26 |
|
27 |
See the [WordPress Exploit Scanner homepage](http://ocaoimh.ie/exploit-scanner/) for further information.
|
28 |
|