来自ERPScan公司的安全专家们发现了这个编号为CVE-2018-2636的漏洞。这个漏洞来自Oracle MICROS系统内的销售点(Point-of-Sale)终端,可能被利用来从硬件内无需验证地读取敏感资料。
ERPScan发布的漏洞分析内这样写道:“CVE2018-2636标记了一个Oracle MICROS系统内的文件夹遍历时暴露出的漏洞。如果公司内部有人得到了某个关键文件夹的路径,他就能从一台终端中偷取许多关键的资料,包括服务日志以及一些包含着用户名和密码的信息,甚至可以使用这些密码去连接数据库,获得更多关于服务器端之类的信息。”
“攻击者们能够获得数据库用户名以及哈希过后的密码,将密码暴力破解然后获得数据库内部商业资料的所有权限。而且还有许多不同的利用这个漏洞的攻击方式,导致整个MICROS系统处在危险之中。”
Oracle的MICROS系统在世界范围内拥有超过330000的现金注册用户,涵盖了许多食物卖场(200000+)以及酒店(30000)。
研究者还解释道,对一个本地攻击者来说要获取到MICROS销售点终端的URL路径是很简单的。
例如,他可以找到一个商场的电子秤或者其他使用RJ45点硬件,将其连接到Raspberry PI(树莓派),然后扫描整个内部网络。另一个选项是可以通过这些暴露在因特网上的设备来定位。截止本稿完成之时,共有139个MICROS销售点系统暴露在因特网上,其中大多数位于美国及加拿大。
这并不是MICROS首次遭到质疑,2016年时就曾经有黑客通过客户售后支持中心入侵MICROS系统。
分析报告最后总结道:“如果你想保护你的系统免受网络攻击的危害,你必须持续地保持更新,安装所有安全补丁。在这个案例中,特指Oracle在2018年1月的更新。”
DWObject.OpenSource(); DWObject.IfShowUI = false; DWObject.IfDisableSourceAfterAcquire = true; DWObject.PixelType = EnumDWT_PixelType.TWPT_BW; //Black - White image : EnumDWT_PixelType.TWPT_BW, GRAY image: EnumDWT_PixelType.TWPT_GRAY, RGB image: EnumDWT_PixelType.TWPT_RGB DWObject.AcquireImage();
function BeginScan(){ DWObject.OpenSource(); DWObject.IfShowUI = false; //set without user interface DWObject.IfDisableSourceAfterAcquire = true; DWObject.AcquireImage(); } function DWObject_OnPostTransfer(){ DWObject.SaveAsBMP("C:\\temp.bmp",0); }
DWObject.SelectSource(); DWObject.OpenSource(); DWObject.IfShowUI = false; //Set Image Layout DWObject.Unit = EnumDWT_UnitType.TWUN_INCHES; DWObject.SetImageLayout(0, 0, 5, 5); DWObject.AcquireImage();
DWObject.OpenSourceManager(); for(i = 0, i<=DWObject.SourceCount - 1,i++){ if (DWObject.GetSourceNameItems(i) == "Specified device name") DWObject.SelectSourceByIndex (i); } //if can't find the specified source, it'll select default source DWObject.AcquireImage();
DWObject.IfShowUI = false; DWObject.IfDisableSourceAfterAcquire = true; DWObject.OpenSource(); DWObject.IfShowIndicator = false; DWObject.AcquireImage();
DWObject.SelectSource(); DWObject.OpenSource(); //Set XRESOLUTION current value. DWObject.Capability = 0x1118; //ICAP_XRESOLUTION DWObject.CapType = 5; //TWON_ONEVALUE DWObject.CapValue = 300; if (DWObject.CapSet == false){ alert( "Failed to set the x-resolution. " + DWObject.ErrorString); } //Set YRESOLUTION current value. DWObject.Capability = 0x1119; //ICAP_YRESOLUTION DWObject.CapType = 5; //TWON_ONEVALUE DWObject.CapValue = 200; if (DWObject.CapSet == false){ alert( "Failed to set the y-resolution." + DWObject.ErrorString); } DWObject.AcquireImage();
DWObject = document.getElementById("dwtcontrolContainer"); //dwtcontrolContainer is the id of the Dynamic Web TWAIN on the page (An object or an embed). function btnScan_onclick() { DWObject.SelectSource(); DWObject.OpenSource(); DWObject.AcquireImage(); } function btnUpload_onclick() { var strActionPage; var strHostIP; var CurrentPathName = unescape(location.pathname); // get current PathName in plain ASCII var CurrentPath = CurrentPathName.substring(0, CurrentPathName.lastIndexOf("/") + 1); strActionPage = CurrentPath + "SaveToFile.aspx"; //the ActionPage's file path strHostIP = "localhost"; //The host's IP or name DWObject.HTTPPort = 80; DWObject.HTTPUploadThroughPost(strHostIP,0,strActionPage,"imageData.tif"); if (DWObject.ErrorCode != 0) alert(DWObject.ErrorString); else //succeed alert("Image Uploaded successfully"); }
var iDocumentCounter =0; function BeginScan(){ DWObject.OpenSource(); DWObject.IfShowUI = false; DWObject.IfDisableSourceAfterAcquire = true; if(DWObject.Duplex != TWDX_NONE) DWObject.IfDuplexEnabled = true; //enable duplex DWObject.IfFeederEnabled = true; if (DWObject.IfFeederEnabled == true){ DWObject.XferCount = -1; if(DWObject.IfFeederLoaded == True) DWObject.AcquireImage(); } } function DWObject_OnPosttransfer(){ iDocumentCounter = iDocumentCounter + 1; if(DWObject.SaveAsBMP("C:\\Image\\" + iDocumentCounter + ".bmp", 0) == false) alert( DWObject.ErrorString); }
function btnUpload_onclick() { DWObject.HTTPPort = 80; DWObject.IfSSL = false; // if 80 is the port number of non-secure port /* DWObject.HTTPPort = 443; DWObject.IfSSL = true; // if 443 is the port number of secure port */ DWObject.HTTPUploadThroughPost("127.0.0.1", 0, "/SaveToFile.php", "imageData.jpg"); if (DWObject.ErrorCode != 0) alert(DWObject.ErrorString); else //succeed alert("Successful"); }
function Scan_Click(){ DWObject.AcquireImage(); } function DWObject_OnPostTransfer(){ DWObject.CloseSource(); DWObject.IfTiffMultiPage = true; DWObject.SaveAsTIFF("SaveAsTIFF.tif", 0); if (DWObject.ErrorCode != 0) alert (DWObject.ErrorString); else //succeed alert ("Successful"); }
function NextImage_Click(){ if (DWObject.HowManyImagesInBuffer == 0) alert ("There is no image in buffer"); DWObject.CurrentImageIndexInBuffer += 1; } 13.如何进行双面扫描? function DuplexScan_Click(){ DWObject.SelectSource(); DWObject.OpenSource(); DWObject.IfShowUI = false; DWObject.IfDuplexEnabled = true; //enable duplex DWObject.AcquireImage(); }
AnyGantt是完全跨浏览器和跨平台的,可用于ASP.NET、ASP、PHP、JSP、ColdFusion、Ruby on Rails或简单的HTML页面。有了AnyGantt你可以从任何地方可视化数据:从文本、Excel、CSV格式中的文件到MySQL、MS SQL以及Oracle数据库服务器。(重要推荐:AnyGantt已加入在线订购,超值特价低至¥368起!)
【慧都十四周年庆预热开启!全场满额送七级豪礼,AppleMac笔记本电脑、iwatch、iPad等您来拿!】
活动时间:10月1日-10月31日
using (RasterCodecs codecs = new RasterCodecs()) { codecs.Options.RasterizeDocument.Load.XResolution = 300; codecs.Options.RasterizeDocument.Load.YResolution = 300; RasterImage image = codecs.Load(inputFile); using (IOcrEngine ocrEngine = OcrEngineManager.CreateEngine(OcrEngineType.Professional, false)) { ocrEngine.Startup(null, null, null, @"C:\LEADTOOLS 19\Bin\Common\OcrProfessionalRuntime64"); using (IOcrDocument document = ocrEngine.DocumentManager.CreateDocument()) { document.Pages.AddPage(image, null); document.Pages[0].Recognize(null); IOcrPageCharacters pageCharacters = document.Pages[0].GetRecognizedCharacters(); for (int i = 0; i < document.Pages[0].Zones.Count; i++) { IOcrZoneCharacters zoneCharacters = pageCharacters.FindZoneCharacters(i); if (zoneCharacters != null) { foreach (var ocrCharacter in zoneCharacters) { OcrCharacterPosition position; position = ocrCharacter.Position; if ((position & OcrCharacterPosition.EndOfLine) == OcrCharacterPosition.EndOfLine) { Console.Write(ocrCharacter.Code + "\n"); } else { Console.Write(ocrCharacter.Code); } } } } } } }
2017慧都十四周年狂欢搞事情!砸金蛋100%抽现金红包、满额豪送iPhone X、iPhone 8、DevExpress汉化免费送、团队升级培训套包劲省10万元......更多惊喜等您来探索!
任意代码保护 - 防止非图像支持的执行代码和代码页修改(例如VirtualAlloc / VirtualProtect创建/修改的代码) 阻止低完整性图像 阻止远程图像 阻止不受信任的字体 代码完整性守护者 禁用Win32k系统调用 不允许子进程 导出地址过滤 - 将功能修补到另一个功能的一个常见方法中的一个步骤 导入地址过滤 - 将功能修补到另一个功能的一个常见方法中的一个步骤 模拟执行 验证API调用(CallerCheck) 验证图像依赖完整性 验证堆栈完整性
xperf - “PROC_THREAD + LOADER”-f“wdeg_klogger.etl” xperf -start“WDEG” - “Microsoft-Windows-Security-Mitigations:0xFFFFFFFFFFFFFF:0xFF:'stack'”-f“wdeg_unmerged.etl”
xperf -stop -stop“WDEG”-d“wdeg_merged.etl”
#include #include using namespace std;void* CreateCodeInVirtualMemory(BOOL writable)
{ BYTE code[3] = { 0x33, 0xc0, 0xc3 }; LPVOID result = VirtualAlloc(NULL, sizeof(code), MEM_COMMIT | MEM_RESERVE, writable ? PAGE_EXECUTE_READWRITE : PAGE_READWRITE); if (result)
{
memcpy(result, code, sizeof(code));
} else cout << "VirtualAllocEx failed with error " << GetLastError() << endl; return result;
}void CreateCodeInVirtualMemoryAndExecute(BOOL useWritableMemory)
{ LPTHREAD_START_ROUTINE addr = (LPTHREAD_START_ROUTINE)CreateCodeInVirtualMemory(useWritableMemory); if (addr)
{ DWORD result = addr(NULL);
cout << "Code at 0x" << hex << (void*)addr << " returned " << result << endl;
} else cout << "NULL address was not executed" << endl;
}void ExecuteIllegalMemory()
{
CreateCodeInVirtualMemoryAndExecute(FALSE);
}
void PrintOptions()
{
cout << "Enter one of the following options:" << endl;
cout << "1 - Execute Memory Not Marked As Executable" << endl;
cout << "2 - Create Code in Virtual Memory" << endl;
cout << "3 - Create Code in Virtual Memory and Execute" << endl;
cout << "0 - Exit" << endl;
}void DecisionLoop()
{ while (true)
{ int selection;
PrintOptions();
cin >> selection; switch (selection)
{ case 0: return; case 1:
ExecuteIllegalMemory(); break; case 2:
CreateCodeInVirtualMemory(TRUE); break; case 3:
CreateCodeInVirtualMemoryAndExecute(TRUE); break; default:
cout << "Invalid input" << endl;
}
}
}int main()
{
DecisionLoop(); return 0;
}
PDF FLY™是一款专业图像转换工具,用于将PostScript®, EPS 和 PDF文件转化为矢量和光栅图像文件格式。通过它,您可以将图像、图标、窗体和报表等无图像损失得移动到您的视图、编制和发布的系统中。您可以转换多个文件及进行文件夹级别的文件转换,其操作就像进行单个文件转换一样简单。