Ich habe heute eine Sicherheitslücke im Multi Attachment Hack von Spitzi gefunden.
In der pms.php findet ihr nach Einbau folgenden Code:
code:
1:
2:
3:
4:
5:
6:
7:
/* Attachmenthack by spitzi */
foreach ($_POST['pmid'] as $temp_pmid) {
pn_attachment_delete($temp_pmid);
}
/* Attachmenthack by spitzi */
Die dort aufgerufene funktion pn_attachment_delete in der acp/lib/functions.php sieht nach Einbau so aus:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
function pn_attachment_delete($pmid) {
global $db,$n;
$result_attachments = $db->query("SELECT attachmentid FROM bb".$n."_attachments WHERE postid='".$pmid."' AND pnornot='1'");
while($row_attachments = $db->fetch_array($result_attachments)) {
attachment_delete($row_attachments['attachmentid']);
}
}
Damit ist eine SQL Injection möglich.
Um das zu beheben müssen wir den Code wie gefolgt abändern:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
function pn_attachment_delete($pmid) {
global $db,$n;
$result_attachments = $db->query("SELECT attachmentid FROM bb".$n."_attachments WHERE postid='".intval($pmid)."' AND pnornot='1'");
while($row_attachments = $db->fetch_array($result_attachments)) {
attachment_delete($row_attachments['attachmentid']);
}
}