目录

. RedHat官方给的PATCH第一套方案
. RedHat官方给的PATCH临时方案
. RedHat官方给的PATCH第二套方案

1. RedHat官方给的PATCH第一套方案

0x1: Patch修补原理

patch修复的重点有以下几个地方

1. 在builtins/common.h中增加了2种宏定义,对环境变量允许传入和解析的参数进行了限制,这是一种参数化防御的思想

aaarticlea/png;base64,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" alt="" />

2. 在builtins/evalstring.c中的parse_and_execute()函数中对即将解析的环境变量参数进行了边界检测

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAmwAAACSCAIAAAB38AEyAAAZSElEQVR4nO2dv2/cOBbH72+ZwjOtt9siCdLcGbazwLjJD2zrBEmxNrIZ9wEWSKoF4kq7bVJcERgwphogyBZ3RcrAlQdBukOqBQK4mlS5Qr9Iio8iOZJGM/4AnyKRNeTTI8Wv3hNF/mM4GgAAAEAE/1i5BQAAAGsKIgoAABAJIgoAABAJIgoAABAJIgoAABAJIgoAABAJIgoAABAJIgoAfeQ//30HrbLyJt4MEFEA6B0M8Th5XUBEAaBfMLjj6jWiYxE9ni0ukrH/cbhWHM8W08nqzYAVw8jerau575aiVkS3k62n37buW1w83J9vPf229fTb1tP5cNujsr1kfnWZ7PkeH59eLq4Wi6vFIvvrOLlYZEc6bvLjWW7J7MTn/L1kfrXQjdftv1osrhbz0/FoMFuY1z5OLpQLTIvSnzBOpulvPe231jscn15qbjyepVeXun12rLSCUnulUdQjC/1a7PXKxyvXHt0uoe3VX8bJRVBb94a9ZK70okBaEdFq1+3MD+2PVwH9RPdD6urA+w40okV0O/HVzgypmYXjkuIOhifTjtt7MsuHA6+qxeFjnFxUj09mV/rl6z8fn17OT5OZ7ooIEa3a4xLRi8t5LpyqiJ5MVVkaJ6cTs5zjmSLA9nrl427v+bdLYHv1miVFdHUa3DcRlceTdpupbyJq+iF39VLtdc2JTufenG0dJkPv842Apva4I8Hb9ciodDufqsenl0IAZBePk6keaOZilv/kMtkzVbN9EU2SqRJopuY5EgZKOUqDRomoo0t4tktge/Ubr8FRvswVBrLlo0w4LYhouy+MVp4w8DbA9EPpat/7DkxcIjoeHn7LErbVSDRMRAPD0EGoiE5mRXpQ/ZOWVlXTOMr59Rm/PNehhVkyx7PFlXixlp8faxndih6UwlZ4owMRHR/PyqzvRTJ2PwaZ5ZTp9wgR9Q4apHYJbK/iKqrpZbX/5Nd4Ml3MjtP+MztRku3ScbF/po1bZJ4136r906etJzOzBDNnnldRSdwV7WXYo90XpT3eHW8yi4/89JFdr9rpZ5nqeJLfXEWzZpfmapeqPZKf9SYwxitbv3LX62p3S9PI7SWLaMvB+gbjEYkO72siOryfK+tTWWJNpDvKcvxkWumUehesiOg4uShuBjU7qjwLa/0j/LEx6/S+L9iKO00fwc37Lf+rYLOqT3r/7kJEB5OZrp1SuGOWU5oqXW+diNafUNcuge2lp6m1QlSb08s8maZPY+nVpeN4li2wHhf7pyYAUh/w76t5vZWDlmFUFI+iBFVrVXsqbx9EKrd2Kc+1z6/ZyG5tF9nPjsa1jScuEbW2i9BP6prJvHGEfuWoV/awtZ/Y20vwgxr0e993oBEuohlBkWjglKLRID6dW94MZl5U77j+iYs0sry4zB7Y9THIQd5rrTYIV+S0Wb2Zl5lYlJZZJ6LpI/+yIipFojZx1U6ov0CpXYLby554lPyT+yE3UhVR23GxfwqDuB7xhz3wjU8vq3O7Kj8XHi51e8obUL8TvZN+y0ei9nbx9LOltwRFotXjrgR1gIhK/UquV25raz9xt5cjEl19UnpN2QgR1SeI1kaiQ3Ucr+s0ZcfKnkPDXq6oT/Tyg545QFtsVv/USSQ6HO0l8+lEE9Fu0rleN7PULuHtZYiH1M3y0yJE1N4/HSJa1qu7QgvmLDZnFUk/rzSZVldVRJXZ2rZ0pZulI9GadulcRAV7anus0ZGkfhUjoraGrmkvRLR5NkBEK+8UVRGVw53CAPeAbuZMQl4L5dbWTLQpaqnkcoVBpzERtT2x6jODZknxX93PWjnGGLHcxCK/tJLULuHtJYeMzUSiUv9sOhK1JRvdU9+zaWvKwfLnte/C26QQUUe7rEREpYqWENGmI9Ga9qoTUdK54XQjoq1OLFIHKXVSj1fIWD+HUI3AUmELETD13Yarj55MF4uLS+UuqnpG+3JjeRHVB4XSTvUmHJ9ezi+02bbuT1z0dGK7E4ukdglvLyG9r81L0t8tRYuo2j+lQVM5P30jEDWxyOIl4/h8Opurf9LsMbI44WPrXjIPfNxUUD5erBjfqIgqrzZq28X5Gkjy88g+XtneMQeKqNhP3O3FxKLmcYho+oWoiqqaEZ+4iAkoW5JE6PQ1s+AuksTo9EKa1zalTUIrfyxOvlWvyFq+Y5GBPNmlfexom3JVzm3xT6+508imMfqTrDE6q5dgzVWqTSldb0OfuIjtEtZeVVOt6VNtdklYOlfon/KgWbh0fjr2eWByzhJQerv5JZXeCvr95fiTlzQ2IKL2dmlMRNWuO514vBOV+4nVz+J4Ze9XwSLq6CeO9uITl+bpbtk/ab6Z/3y/MCxv1HnO6j88DndDdb6V651fx7DsX+eu5r6Lp8u1c6U8QzuLZRgJFnkNBOgPTG3oBtuTKyJ6HSkz59x3sWzyAvRa2nbTFbQ69XENr5qFsFsnuymE2UY96S0RIroR/X8F18UC9MvDVmgA0DsIRnHyuoCIAkAf+c9/30GrrLyJNwNEFAAAIBJEFAAAIBIfEc2+amICNAAAgEq9iC6zLyAAAMAGUyuiPZr4DgAA0CsQUQAAgEgQUQAAgEhqRbSVtYQAAAA2AIeImvuKAAAAgEpdJMr+OAAAAAK8EwUAAIgEEQUAAIgEEQUAAIgEEQUAAIiEZf8AAAAiYQF6AACASNgKDQAAIBJRRM/O/m1l5RYDAAD0BCJRAACASBBRAACASEQR/ee/bq/cOGgathMAgGvO8azRNeEbj0R3d95/fTg/v7F6T4n88OLjw/nXh/Ne2dmB3/aSuT7F+smDL5+evX2i/GM0GP745x/Pv589/352OElPu33389mvf95u2Jjt3/969uXTg1+69nP79e7d+fDp2ZdPz758evbh5fbmXNdoMBwN9l8++vLXnf14P4Ta2fb5m4j1vo5mfHq5uFp0/4GGvd69ZG5uizJOLhbZmb7SOE4uGtxbpfFINEwMfnjx8eH7Vz901jAqj8+vlYiOk4vF/HSsHty786G82R79vjcYjgb3Dr//cfen4Wjy2/PPRz+mmvruXvP2bKqIbv/+V4vaKWtY30RU8kMzorhyP3i6JeCZo8F6bfd1LJUn746Q6rWIaMbJNEQX95J5Y+sfrPidKCLaEdbdePbufEjvseIfpoj+dPTr9992Vm38OnHr7bLDlou2B+XmDNhwP3jaszoRNe/rWFb1Aii83jARbXKDsiYjUSFNurvz/uvB46OD7E8fd3aNkwuyPw1Hgxuv84OKxP7w4uPD10fDx+fpn35+seso3yynqpd+IrrzvqhIMSO3ylp+qJ1Bfiv+pLrOsLCKJQyV2Hl39vz72fPvf9z96fbdz0VSN+Xe4ff0r2fPDXG99fbTM8/xYv/loy9Zos+IGNIwouTDy+304Nsnt95mB9VBQT2/LGr/5aMvb26luSw1lyjU61m+Z3q2Kh5p+fl/nzzIveSoV8uFpucrxhdkP/HzZ/EnZ70Cv7xR6lVauTxuNr1FREP9bz2/N37IypHscdhp99uTB1/e3EqPv32SGpyeb9iZ9SV3+c1hEbNxcrGYHQ9PpkKuVc+snkwXs+PJ7GqxuJqdpCf4SJdQryNtaxPRtN7F4so2+lmD3eOZ/WQXLUSipjilI36mATdeV3SxEoneeP314euj8t/5CZnYpP/dffVzVqZY/g8vPh48HlTLEey0oxpT2vz6yFF+qJ2hflNM2q1qvJXJLDwnU0nkOl+OBohoxpMHxmD3y5tnX97cGo4GejJQHVAGv7x5popQfn46pujjWnpa9WHcrFcqX7LHcTnGoJbW4hJRa72OV1muyMZ6XRb/yPUKKH7QDFCPl+WIfgj2v9RPVuWH/ZePikYxzg+KRB1++/ByO+29qY4WD5G6duqPFC1FurlGKmQSlYlZqjRlPKclSMuXjifTVGjTX6U66hqL5HqVE7xEVF2wdjKzSGP2NKAdbFRE42fn2sSgEJvh4/M6ET06UKOuUoRScSpKPjqYp8W6ytesihLRQjIL6brx2qZbSvmRdvr6rShQM89JxIsNSyL39t3PZ+mL0riOYWAOdrfeKsqRRZOjgShCe3c+CD/XBxqtWFu9kshJ9rgJjUSrx7VB1iBAPET/iPXa0Z9CFAP0KzUfVuR0rq//pfNX5IdqLZEiKvgtNzv/iSaiSgfWft5+WluKCAu5Op4trmYnqZqqGpYfz7UtT4Z5jkVyOtdXRPUSbMnbgPyck44i0QAR3X31s5DmFQRDLt8oKkpE8wKPDt6fH7w/v6FWJ5QfbGeg38Ij0WARTRO5t+9+NjK3xZEG5uuGRKKWwU4ei2sEz3sQD4tEM5YXUWPQ1AgQD/EyI0TUFvqoCWdLOrE3ItqUH6qXHCeikt8CRFR/tluJiFan5Jgalm//tSoRVSb35nQuoiuLRJXQ0yBQnI4O1JeFsZHocPfVz/PzG7uvDl7s3nj99eDx7s771Dyx/C5EtFDu+jB0ECyiWSI3n6C7864imT8d/frdeF0ajFVEi5GlVEFPEdUj0aZE1GKPm2ZEVBLsJcSj6Ui0ZtJKb0U0OhK99VZ9KR4diUp+8xRRMTHQEtEiuupI1GPekP1CwllxJDp8fP7QlMzdnfd2bVhCRI8OoiPR0dHB/HznxfnO7mD4+Pzh6/OD7Fdi+S2LqJ7u9iPkmatI5DpEdHDv0BDR5d+JSsOuK91qebfUmIjGzS+1i2hmTxqF1KVz918+EieJOD5asKmFzT9LiEf6vtP2TtrDD6H+l87vgR+qvV2yx3Jc8JufiJqp/uCPWNItufxnsXqLaFpy9R3kytK5tR+xyBOLAj8hbTASNaeMPlQm1DjEQ4mrCm3Qi4oVJ2XW68edF8VxyU7ndSnCXFd+qJ3BfjMnNvt8IzQ+vVx4ba6uqmOevM3eg6pTcyuy6i+i5pRX2+zKZ188xCar1JpbswzuUr1uMbOn72Rs4lFm8B784vFO1Kxar1eJj0v7hbSq1T9LpDH/urOvna9XrZUjPEwE+N9xXavxg9Ioj35/aZ5fscdx3OY3p4g6MiJSvQLZBFqfoWA4GoSI6KDYNFObDduYiKpTf9X0rHS88icjirCHqqH+GQxX/p0oBGOmu/Wssox1flqPsMxM6XLFn97bA9cU1zvyCMbJhd9HJpuNrOUn08ZElLVze4qRAN999bMyWddJk4t0NI+RmCpWXcEeuNY0K6J7ybzfD9OdIL/eivEPkWjGwdzIqWb46VOnaBOLwizs9QL02kSeHihW3+yBa0lzIpp+gtmPx+iZOXU2IygEjEVYgD71T/gTBpEoAABAJESiAAAAkRCJAgAAREIkCgAAEAmRKAAAQCQdRKL5IopLF+Wzg3nQcoiTWfDiFNeBiJ3ie1X+UF0XYvk1fgEAZDqIRBsT0Qzn5qs9F9GmljxuqpxoP/e5/HuHhXY2scYvAIDMOkWiGc2JaPcgou2Xny/5m/53512T27cBAOg0HImWO4mXn82mIlosY6h+7G/bCd0Q3ZOpqRbuHczrv5Y11lqsq1fcmT09v1wu0v2goOQw3Ws81uhKeDlhdvr6OXeyvrngIF0/s1hPy7WzfEsiuvPurNxL/KejX7Wt3OI23QUAkGgyEhXCI21JX2UFV2En9HARVXcwDwvRtKJkEbXvzK5dV0VL/F0k+aGpcmLsrPWz0o75nkeVX9XsLO8rosfVxU1czwHFnjM//vnH8++/7Ri7iyOiANAkTUaiwtLGgjhJO6GHiqi+GH87ImrdhcBIU3utqGcxT/RDU+XE2Gnxs7xTvLqrgyKcdTvLtxeJ/vrnvbuf8yyuIaIAAE3S8DvRMtlYDvE14jQ0T4sQ0fK/KxXRKPET/dBUOTF2Cn4W0shlEyjCWbuzfHuRqDYpd/Lbc0QUANqipdm5amrRU0TXPBL12Ejdbp7oh6bKibGz1s/V5s52sS+sqq2opUg0y+Kq/y1ekQIANExbs3OVtJ4kisJO6KoAp9GMh1pkM1lCl+GviKilXj8RVd//1dVoSIvkh6bKibLT4mfnTmr59CtF/ut2XlvNJy4xO9cDAEg0GYkKU2QdkaVtJ/SRmgmcTsrz5R3Mi/Pnp+Nq5OpAzFgq9TpFtDTGe4MhxUuFCgp+aKacUDvjdoq3ipP1fEf5TZFNyj17Xv1INGbnegAAieu9du5SwVDT37+2xbrY2RXhO9cDAEhcw7Vzj5PsK8a6fGMN6yJO62Jnd97gExcAaIqNjUQdO6fbphBHYBenpnZsb27n93btXCdid64HAJC4hpEoAABAM2xsJAqwMfz99/9WbgMAWCESBeg7iChAbyESBeg7iChAbyESBeg7iChAb2l6Fxe//bzWi1Vd16b6c1mftDK9Nl2Eoaft242ImrvszU/Hll0ltIWxZE9eCZembiY4GI7MNZaLTfScGzNoVZQ/sZZfqaU433q9nbU+bAwtRKJNLOfWx721bde1Lptj99Gf/boQu4j2pH27E1GLOmpf1nosS1lZZtJYjGx+mswksVQU2rkrkaji1fJzsSxMGifT6u5DANG08E50Uwd9RLQHdHwhPWnflYpoFsbNTpR/uMpxbSAxTi4uk73KRgW2fQ4kEXXaYClf3tEBEYVG6CgSVRZ6rezzrH/mb+ZYPNZWzW6G9FN6Pb1Tlq8PhdV6Q3ePibBzXfw5HOlJNvsyvHm9+dLzi3zH8qx86bhof+r/YvlfzUhhWWYRS7unV1QMmvle60MhrRrqt8pu58q+CHJ72drX0g+/5iIq9edGcIjKZHa1mE9nXit8qfYXC03rf1J3+LGJ5WWyJ0eijm3VbeXLzyhOEWXzdvCli0h0nFxY0zuOx/ygCCAb78q9vrP7R92xxKPewC3Ygu0M3Bdzdf4UVpfV0milZuRqlCfN8nFTOi7arwmtel1qO/pciNTuShCjKVyD7av1n7w0qb2EekURFa+rof5mPjdoApOW5vOYKO9SUOqiIq6mWOZ/crwTLZ7wDAm0lV9zU7ivFxEFDzp/J6qIU2XOQkm4iGqvVfKB0pi/cFG+C7HU27aIxtK5P+3bpUmDmrTLjbj7jWS/4P/g/WLFdi9+nlgvcOn2VSMbccu5+n4liajruhrBFZlluuUrouJDXvVhKEJES79pTwbW8pUWNJMcpHOhETp5J6pPwDPekVjTU9GDl1ipPgTY6l2bSLRlfwoL1ktjfYSI2u13iKieZXVfiLPdXbNwl39IKk2tCp6cjvYU0ZrraqC/yaKSzi2KSOeqYq8/RRVXHZzOrdhcjW5Herc0y0FEoUk6iET11Jl9v09zxl1DIlr74KzWuy6RaNv+lEPGZiJRyf6GIlFnu6ddxZ4LbaB9lQcLfWKLq70CRLSdl+66c4QemL/nDp1YpE0Usom6IZZFXcb1SpevnS+Vr9qMiELDdBCJqoOI+KbBTH8V94ZHja6p+XU3iVKvcn56Q3qIaJCd6+RPy8naB4KlDi0loqr90kOMcr7XNixyu5ee9H0nGty++XQqfdR2tpdNRI1++PXv/y29c59fu1vKr7R7zVxiezq3+jiSdVFVRMenl6WvtIc56R1wffmZzerG9T4iat1kHsBCg5Go8ZG1/u6hOJKUT+LuKZfKX/1m59aaVFtv+TA7negRkiON5m/nuvhTr+LKCKrMg+HpXMF+ORNQtMv8dGyPvD3aXZmOW9hQfnfYWPtaBl/H9drrrfTDfHauPGenCayLD5iqaUxyrnW+or72pxY9gtTDXFt/E3LjYvmWS6veR1V/ZlexyTsDQkOwdi5A32HZvxXglbsGYO1cgN6DiHaOtk4TgIO1iUSrUw19JhzCpvpzVfavpN4eiui69x8XXq/eATKIRAH6Tg9FFABS1iYSBQAA6BtEogAAAJEQiQIAAERCJAoAABBJg5HodrL1dDZsz9btZOvpfLi9cpcBAACkNBiJIqIAAHC9IBIFAACIpPFIdDvZevpt6+k3RVDHw8NvWzeHw/vpcVUIJ/nJ37b2tcWjy+P3J0r5+W/TWg6TUrPZRBcAALqm4Ui00M7x8LDQv/HwsJTJ4f48F7/J1tNvWzfTn08UHR0PDwsBVo4XIppWtK/rJSIKAABd09470ZuzXCxVQR2Obs6y08oThiNNXDWG93URvZko0gsAALBC2nsnWohlns41zh/uz8ucbUououafShE1EsUAAAArpLVIVIksZRG1hZ6jmzP1vakZiW4Ph/e/2X8IAADQKW1Four7TruIZpFl9bgqojdnlneiaYGGjrITPQAAdE3DkaiSgy3VURDR6k/KiUVKgrcSiY4Gw3z6rpLXZSd6AADomg1aO5ed6AEAoFs2Zu1cdqIHAICu2YhIlJ3oAQBgFWxMJAoAANA1GxGJAgAArAJEFAAAIBJEFAAAIBKXiI6TiwUrGAAAAAjUR6KT2dVidrxyQwEAAPqGRzr3ZMrXIwAAAFUQUQAAgEgQUQAAgEg8RHR8erm4SMartxUAAKBXeH7iku6RwjRdAACAEiJRAACASHgnCgAAEAkiCgAAEAkiCgAAEAkiCgAAEAnL/gEAAETCAvQAAACRsBUaAABAJKKInp3928rKLQYAAOgJRKIAAACRIKIAAACRIKIAAACRIKIAAACRIKIAAACRIKIAAACRIKIAAACRIKIAAACRIKIAAACRIKIAAACRIKIAAACR/B8HUAstnMDyMAAAAABJRU5ErkJggg==" alt="" />

类型的定义在command.h中,对指令的类型进行了定义

/command.h

aaarticlea/png;base64,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" alt="" />

patch的修复思路是对传入的参数的类型进行判断,如果参数不是一个cm_function_def,即不是一个完整的函数定义指令,则认为产生了代码注入

0x2: 修补后存在的bypass问题

patch修复代码的关键点在于对输入参数的类型判断,即

aaarticlea/png;base64,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" alt="" />

我们可以从这点进行反向思考,如果我们能使我们的command的类型达到cm_function_def的目的,就可以bypass这个patch code了

poc

env X='() { (a)=>\' sh -c "echo whoami"; cat echo 

通过构造半开的半闭合"{"来伪造出一个未完成的函数定义,通过这个半开的函数定义"{",在通过检测逻辑代码的时候,command->type被识别成了cm_function_def,然后在代码解析执行的时候又重新暴露出代码执行的目的,一个典型的bypass逻辑

Relevant Link:
http://ftp.gnu.org/pub/gnu/bash/bash-4.1-patches/bash41-012
2. RedHat官方给的PATCH临时方案
A workaround is available which can mitigate this issue without patching bash. Please note that this workaround has only been subjected to very limited testing, and it may have 
unintended consequences
0x1: 临时方案的防御思路
bash_ld_preload.c
#include <sys/types.h>
#include <stdlib.h>
#include <string.h> static void __attribute__ ((constructor)) strip_env(void);
extern char **environ; static void strip_env()
{
char *p,*c;
int i = ;
for (p = environ[i]; p!=NULL;i++ )
{
c = strstr(p,"=() {");
if (c != NULL)
{
*(c+) = '\0';
}
p = environ[i];
}
}

Compile it:

gcc bash_ld_preload.c -fPIC -shared -Wl,-soname,bash_ld_preload.so. -o bash_ld_preload.so

Copy bash_ld_preload.so to /lib:

cp bash_ld_preload.so /lib/

修改apache的.so加载路径

vim /etc/init.d/httpd
LD_PRELOAD=/lib/bash_ld_preload.so
export LD_PRELOAD

重启apache

service httpd restart

继续用bypass poc攻击

加载了了patch之后,.so文件对我们的传入的畸形参数进行过滤、清洗,从功能上来说是达到了修复的目的

0x2: 临时方案的风险

这种方案可能导致依赖进行自定义函数的bash指令的程序失效,如果机器上的程序使用了bash脚本命令,并且其中包含了"(){"函数定义,或者是其他的用途,则会直接被删除,风险系数较高,官方的建议是这种临时方案需要谨慎使用

Relevant Link:

http://seclists.org/oss-sec/2014/q3/650
http://ftp.gnu.org/pub/gnu/bash/bash-4.2-patches/bash42-048

3. RedHat官方给的PATCH第二套方案

0x1: Patch的修复原理

1. 对输入的参数进行了参数化定义

aaarticlea/png;base64,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" alt="" />

2. 对输入参数进行边界剥离

aaarticlea/png;base64,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" alt="" />

3.  对边界剥离后的参数进行合法性判断

aaarticlea/png;base64,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" alt="" />

通过这种方案,很好的防御住了半开的代码注入

0x2: Patch方案的风险

aaarticlea/jpeg;base64,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" alt="" />

经过代码评估,Redhat的这次方案应该没有明显的问题,可以作为稳定的Patch升级方案

Relevant Link:

https://rhn.redhat.com/errata/RHSA-2014-1306.html

Copyright (c) 2014 LittleHann All rights reserved

CVE: 2014-6271、CVE: 2014-7169 PATCH方案分析的更多相关文章

  1. CVE: 2014-6271、CVE: 2014-7169 Bash Specially-crafted Environment Variables Code Injection Vulnerability Analysis

    目录 . 漏洞的起因 . 漏洞原理分析 . 漏洞的影响范围 . 漏洞的利用场景 . 漏洞的POC.测试方法 . 漏洞的修复Patch情况 . 如何避免此类漏洞继续出现 1. 漏洞的起因 为了理解这个漏 ...

  2. 【腾讯Bugly干货分享】Android Patch 方案与持续交付

    本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/57a31921ac3a1fb613dd40f3 Android 不仅系统版本众多 ...

  3. 【转】LAMP网站架构方案分析【精辟】

    [转]LAMP网站架构方案分析[精辟] http://www.cnblogs.com/mo-beifeng/archive/2011/09/13/2175197.html Xubuntu下LAMP环境 ...

  4. SAP-MM:收货转储时提示 M7053“只能在公司代码 **** 的期间 2014/04 和 2014/03 中记账”

    错误信息   消息号M7053   解决方法 Step 1.使用MMPV进入"关闭账期"界面. Step 2.输入"公司代码"."期间".& ...

  5. [SQL Server 2014] SQL Server 2014新特性探秘

    SQL Server 2014新特性探秘(1)-内存数据库   简介 SQL Server 2014提供了众多激动人心的新功能,但其中我想最让人期待的特性之一就要算内存数据库了.去年我再西雅图参加SQ ...

  6. JavaScript基础系列目录(2014.06.01~2014.06.08)

    下列文章,转载请亲注明链接出处,谢谢! 链接地址: http://www.cnblogs.com/ttcc/tag/JavaScript%20%E5%9F%BA%E7%A1%80%E7%9F%A5%E ...

  7. 各大HotFix热补丁方案分析和比较

    最近开源界涌现了很多热补丁项目,但从方案上来说,主要包括Dexposed.AndFix.ClassLoader(来源是原QZone,现淘宝的工程师陈钟,在15年年初就已经开始实现)三种.前两个都是阿里 ...

  8. Android推送方案分析(MQTT/XMPP/GCM)

    本文主旨在于,对目前Android平台上最主流的几种消息推送方案进行分析和对比,比较客观地反映出这些推送方案的优缺点,帮助大家选择最合适的实施方案. 方案1. 使用GCM服务(Google Cloud ...

  9. 【转载】Android推送方案分析(MQTT/XMPP/GCM)

    http://m.oschina.net/blog/82059 本文主旨在于,对目前Android平台上最主流的几种消息推送方案进行分析和对比,比较客观地反映出这些推送方案的优缺点,帮助大家选择最合适 ...

随机推荐

  1. Apache轻量级性能测试工具

    平时工作中会需要一些性能测试,简单的性能测试完全可以由AB来替代,而不需要动用LR这样重量级的工具. 此文简单介绍一下ab的工具使用与结果分析.当作个笔记,以便以后查阅. 1.安装:要使用AB,需要先 ...

  2. 基于 URL 的权限控制

    先不用框架,自己实现一下 数据库 /* SQLyog v10.2 MySQL - 5.1.72-community : Database - shiro *********************** ...

  3. jqXHR 对象(post完成后再调用函数)

    场景: function A() { B(); C(); } function B() { $.post(url, {}, function () { alert("我错了!"); ...

  4. 最近火到不行的微信小程序的常识

    满网都是微信小程序,技术dog们不关注都不行了.先别忙着去学怎么开发小程序,先纠正一下你对微信小程序的三观吧~~~~ 小程序目前被炒得沸沸扬扬,无数媒体和企业借机获取阅读流量. 这再次证明一点,微信想 ...

  5. vim自动添加注释

    我想了下,要做好一件事, 1,首先喜欢它最才有动机去了解它 2,道听途说about那东西的,会去了解并去玩转 3,兴趣需要培养 一 添加vim头部信息. 系统:C67 追加以下代码到 /etc/vim ...

  6. 各种同步方法性能比较(synchronized,ReentrantLock,Atomic)

    5.0的多线程任务包对于同步的性能方面有了很大的改进,在原有synchronized关键字的基础上,又增加了ReentrantLock,以及各种Atomic类.了解其性能的优劣程度,有助与我们在特定的 ...

  7. [转]C# WinForm treeview checkbox----递归算法利用

    在平常开发中,treeview的节点显示checkbox,若节点存在几级时,往往希望,选中父节点后,其子节点都要选中,如何实现勒,请看 using System; using System.Colle ...

  8. 在opencv3中实现机器学习之:利用svm(支持向量机)分类

    svm分类算法在opencv3中有了很大的变动,取消了CvSVMParams这个类,因此在参数设定上会有些改变. opencv中的svm分类代码,来源于libsvm. #include "s ...

  9. Ant 执行 YUICompressor

    Ant 执行 YUICompressor 任务压缩 JavaScript 和 CSS 文件,解决中文乱码问题,增加源文件字符编码集设定 标签: javascriptantcss任务encodingnu ...

  10. 反射中getMethods 与 getDeclaredMethods 的区别

    public Method[] getMethods()返回某个类的所有公用(public)方法包括其继承类的公用方法,当然也包括它所实现接口的方法.public Method[] getDeclar ...