Cyber Anakins Lightsaber - A Minishell-based backdoor
<?php
require("design.php");
//require("opac.php");
session_start();
/*
if (isset($_GET['newbooks']))
{
$search = "(PY ".(Date('Y')-1).") OR (PY ".Date('Y').")";
die(json_encode(OpacFindBooks($search, 0, 15, "DT desc")));
}
*/
TOP(1);
//$mysql = mysqlopen();
LEFTCOLUMN();
CHANNELS();
MAINCOLUMN();
?>
<script src='bookinfo.js?3'></script>
<h1>Читателям</h1>
<style>
.bookTD
{
cursor:pointer;
height:380;
vertical-align:top;
padding:5 5 5 5;
overflow-y:hidden;
}
.bookImg
{
height:280;
max-width:200;
object-fit: scale-down;
}
.bookImgDiv
{
text-align:center;
height:280;
}
.bookTextDiv
{
text-align:center;
font-size:16px;
font-weight:bold;
color:#336699;
}
.bookAuthorDiv
{
text-align:center;
}
.scrollBtn
{
opacity:0.5;
width:24;
height:60;
margin:5 5 5 5;
cursor:pointer;
transition-property: opacity;
transition-duration: 500ms;
}
.scrollBtn:hover
{
opacity:1;
}
</style>
<table><tr><td>
<center>
<div class=btn22 onclick='location="findbooks.php"'><table><tr><td><img src='findbooks.png'></td><td>Поиск<br>книг</td></tr></table></div>
<div class=btn22 onclick='location="ticket.php"'><table><tr><td><img src='readerticket.png'></td><td>Мой<br>читательский<br>билет</td></tr></table></div>
<div class=btn22 onclick='location="computer.php"'><table><tr><td><a href='computer.php'><img src='computer.png'></a></td><td>Компьютерные<br>курсы</td></tr></table></div>
<div class=btn22 onclick='location="newbooks.php"'><table><tr><td><a href='newbooks.php'><img src='new-icon.png'></a></td><td>Книжные<br>новинки</td></tr></table></div>
<div class=btn22 onclick='location="litres.php"'><table><tr><td><a href='litres.php'><img src='litres.png'></a></td><td>Доступ в<br>ЛитРес</td></tr></table></div>
<div class=btn22 onclick='location="pricelist.php"'><table><tr><td><a href='pricelist.php'><img src='money.png'></a></td><td>Платные<br>услуги</td></tr></table></div>
</center>
</td></tr></table>
<h2>Новые книги</h2>
<table width=100%>
<tr>
<td width=1%>
<img class=scrollBtn src='leftscroll.png' id=leftScrollBtn>
</td>
<td width=99% align=center><div id=scrollBox style='overflow-x:scroll;overflow-y:hidden;height:430;width:400;padding:4 4 4 4;border:1px solid #99ccff'>
<br><br><center><img src='formular/waiting.gif' width=128 height=128></center>
</div></td>
<td width=1%>
<img class=scrollBtn src='rightscroll.png' id=rightScrollBtn>
</td>
</tr>
</table>
<br><center>[ <a href='newbooks.php'>Прочие книжные новинки</a> ]</center>
<script>
var scrollBox = document.getElementById('scrollBox');
function scrollBoxUpdateWidth()
{
var w = window.innerWidth;
if (w > 1015) w-=250;
if (w > 700) w-=250;
w-=120;
scrollBox.style.width = w;
}
scrollBoxUpdateWidth();
window.addEventListener('resize',scrollBoxUpdateWidth);
var scrollDirect = 0;
setInterval(function()
{
if (scrollDirect!=0) scrollBox.scrollLeft+=10 * scrollDirect;
},20);
btn = document.getElementById('leftScrollBtn');
btn.addEventListener('mousedown',function()
{
scrollDirect = -1;
});
btn.addEventListener('mouseup',function()
{
scrollDirect = 0;
});
btn.addEventListener('mouseout',function()
{
scrollDirect = 0;
});
btn.addEventListener('touchstart',function(e)
{
if (e.preventDefault) e.preventDefault();
scrollDirect = -1;
});
btn.addEventListener('touchend',function(e)
{
if (e.preventDefault) e.preventDefault();
scrollDirect = 0;
});
btn.addEventListener('touchcancel',function(e)
{
scrollDirect = 0;
});
btn = document.getElementById('rightScrollBtn');
btn.addEventListener('mousedown',function()
{
scrollDirect = 1;
});
btn.addEventListener('mouseup',function()
{
scrollDirect = 0;
});
btn.addEventListener('mouseout',function()
{
scrollDirect = 0;
});
btn.addEventListener('touchstart',function(e)
{
if (e.preventDefault) e.preventDefault();
scrollDirect = 1;
});
btn.addEventListener('touchend',function(e)
{
if (e.preventDefault) e.preventDefault();
scrollDirect = 0;
});
btn.addEventListener('touchcancel',function(e)
{
scrollDirect = 0;
});
function onBookClick()
{
showBook(this.bookID);
}
function build(json)
{
if (!json.books) return;
json = json.books;
scrollBox.innerHTML = '';
var table=scrollBox.appendChild(document.createElement('TABLE'));
var tbody = table.appendChild(document.createElement('TBODY'));
var tr = tbody.appendChild(document.createElement('TR'));
for(var i=0; i < json.length; i++)
{
var titleURL = json[i].cover;
if (titleURL=="") titleURL = "notitle.jpg";
else
if (!titleURL.match(/^http/)) titleURL = "https://biblio-fond.ru/"+titleURL;
var td = tr.appendChild(document.createElement('TD'));
td.className = "bookTD";
var imgDiv = td.appendChild(document.createElement('DIV'));
imgDiv.className = "bookImgDiv";
var img = imgDiv.appendChild(document.createElement('IMG'));
img.className="bookImg";
img.src=titleURL;
var textDiv = td.appendChild(document.createElement('DIV'));
textDiv.className = "bookTextDiv";
var bookName = json[i].title;
if (json[i].subTitle!='') bookName+=". "+json[i].subTitle;
if (json[i].volume!='') bookName+=". "+json[i].volume;
textDiv.innerHTML = _html_(bookName);
textDiv = td.appendChild(document.createElement('DIV'));
textDiv.className = "bookAuthorDiv";
textDiv.innerHTML = _html_(json[i].authors);
td.bookID = json[i].id;
td.onclick=onBookClick;
}
}
sendXHR('https://biblio-fond.ru/api.php','action=book:list&fond=1&yearSince=<?php print (date('Y')-1); ?>&count=15&orderby=year&orderdir=-1',
function(response)
{
build(JSON.parse(response));
},
function(error)
{
scrollBox.innerHTML = "<center>Ошибка загрузки</center><br><br><br>"+error;
});
</script>
<br><br>
<?php
MIDDLECOLUMN2();
print "<center><table><tr><td>";
ACTUALLINKS('actualLinksH');
print "</tr></td></table></center>";
FAQ();
MIDDLECOLUMN();
CHANNELS("channelBlockH");
RIGHTCOLUMN();
ACTUALLINKS();
FAQ();
?>
<?php BOTTOM(); ?>
May the force be with you, always.