做一个信息发布功能

 更新时间:2016年11月25日 15:20  点击:2154
PHP代码:--------------------------------------------------------------------------------
CREATE TABLE `jb_administrators` (
`administratorsID` int(10) unsigned NOT NULL auto_increment,
`userID` mediumint(6) unsigned NOT NULL default '0',
`administratorsGroupID` int(10) unsigned NOT NULL default '0',
`administratorsName` varchar(50) NOT NULL default ',
`password` varchar(32) NOT NULL default ',
`email` varchar(50) NOT NULL default ',
`ipAddress` varchar(32) NOT NULL default ',
`isAdministrators` enum('y','n') NOT NULL default 'n',
`orderByID` int(10) unsigned NOT NULL default '0',
`createDate` bigint(14) unsigned NOT NULL default '0',
PRIMARY KEY (`administratorsID`)
) TYPE=MyISAM AUTO_INCREMENT=2 ;
#
# 导出表中的数据 `jb_administrators`
#
INSERT INTO `jb_administrators` VALUES (1, 1, 1, 'sky', 'sky', ', ', 'n', 0, 0);
# --------------------------------------------------------
#
# 表的结构 `jb_administratorsoption`
#
# 创建时间: 2003 年 07 月 16 日 15:02
# 最后更新时间: 2003 年 07 月 16 日 15:23
#
CREATE TABLE `jb_administratorsoption` (
`administratorsOptionID` int(8) NOT NULL auto_increment,
`userID` mediumint(6) unsigned NOT NULL default '0',
`optionFieldName` varchar(50) NOT NULL default ',
`length` tinyint(2) unsigned NOT NULL default '40',
`rows` tinyint(2) unsigned NOT NULL default '4',
`types` varchar(10) NOT NULL default ',
`isPublic` enum('y','n') NOT NULL default 'y',
`orderByID` int(8) unsigned NOT NULL default '0',
PRIMARY KEY (`administratorsOptionID`)
) TYPE=MyISAM AUTO_INCREMENT=10 ;
#
# 导出表中的数据 `jb_administratorsoption`
#
INSERT INTO `jb_administratorsoption` VALUES (8, 1, '57777', 40, 50, 'text', 'y', 8);
INSERT INTO `jb_administratorsoption` VALUES (9, 1, '联系电话', 40, 0, 'text', 'y', 9);
# --------------------------------------------------------
PHP代码:--------------------------------------------------------------------------------
function make_seed() {
list($usec, $sec) = explode(' ', microtime());
return(float) $sec +((float) $usec * 100000);
}
srand(make_seed());
/* 开启加密算法/ */
$td = mcrypt_module_open('twofish', ', 'ecb', ');
/* 建立 IV,并检测 key 的长度 */
$iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
$ks = mcrypt_enc_get_key_size($td);
/* 生成 key */
$key = substr(md5('very secret key'), 0, $ks);
/* 初始化加密程序 */
mcrypt_generic_init($td, $key, $iv);
/* 加密, $encrypted 保存的是已经加密后的数据 */
print $encrypted = mcrypt_generic($td, 'This is very important data');
/* 检测加密句柄 */
mcrypt_generic_deinit($td);
/* 初始化加密模块,用以解密 */
mcrypt_generic_init($td, $key, $iv);
/* 解密 */
$decrypted = mdecrypt_generic($td, $encrypted);
/* 检测解密句柄,并关闭模块 */
mcrypt_generic_deinit($td);
mcrypt_module_close($td);
/* 显示原始字符串 */
echo trim($decrypted)." ";

·不要被VC、BCB、BC、MC、TC等词汇所迷惑——他们都是集成开发环境,而我们要学的其实是同一门语言;
·不要放过任何一个看上去很简单的小编程问题——他们往往并不那么简单,或者可以引伸出很多知识点;
·会用Visual C++,并不说明你会C++,所以光看Visual C++的书,是学不了C++语言的;
·学class并不难,template、STL、generic programming也不过如此,难的是长期坚持实践和不遗余力的博览群书;
·如果不是天才的话,想学编程就不要想玩游戏——你以为你做到了,其实你的C++水平并没有和你通关的能力一起变高——其实可以时刻记住:学C++是为了编游戏的;
·把时髦的技术挂在嘴边,还不如把过时的技术记在心里;
·看得懂的书,请仔细看;看不懂的书,请硬着头皮看;
·别指望看第一遍书就能记住和掌握什么——请看第二遍、第三遍;【书读百遍,其意自现】
·不要停留在集成开发环境的摇篮上,要学会控制集成开发环境,还要学会用命令行方式处理程序;
·和别人一起讨论有意义的C++知识点,而不是争吵XX行不行或者YY与ZZ哪个好;
·请看《程序设计实践》,并严格的按照其要求去做;
·不要因为C和C++中有一些语法和关键字看上去相同,就认为它们的意义和作用完全一样;
·学习编程的秘诀是:编程,编程,再编程;
·记住:面向对象技术不只是C++专有的;
·请把书上的程序例子亲手输入到电脑上实践,即使配套光盘中有源代码;
·把在书中看到的有意义的例子扩充;
·请重视C++中的异常处理技术,并将其切实的运用到自己的程序中;
·经常回顾自己以前写过的程序,并尝试重写,把自己学到的新知识运用进去;
·不要漏掉书中任何一个练习题——请全部做完并记录下解题思路;
·C++语言和C++的集成开发环境要同时学习和掌握;
·就让C++语言的各种平台和开发环境去激烈的竞争吧,我们要以学习C++语言本身为主;
· 当你写C++程序写到一半却发现自己用的方法很拙劣时,请不要马上停手;请尽快将余下的部分粗略的完成以保证这个设计的完整性,然后分析自己的错误并重新设计和编写;
· 别心急,设计C++的class确实不容易;自己程序中的class和自己的class设计水平是在不断的编程实践中完善和发展的;
· 每学到一个C++难点的时候,尝试着对别人讲解这个知识点并让他理解——你能讲清楚才说明你真的理解了;【教学相长】
在discuz!的发贴、回贴、PM等中的subject都没有经过过滤,所以也可以添加代码。
例如
http://xxx/post.php?action=newthread&fid=2...cript%3E%3Cb%22
效果是首先弹出自己的cookie
利用方法:把上述代码放置到img中。
适用版本:discuz!2.x
discuz!3.x
一种利用discuz!2.0漏洞进行欺骗获得cookie的尝试
通过测试XXXFan论坛的PM功能存在一个安全漏洞,具体描述如下:
XXXFan的给某个会员发送悄悄的链接如下(假定这个会员名字为XXXFan)
http://XXX/pm.php?action=send&username=XXXFan
因为论坛程序对会员名字没有进行过滤,而是直接显示在发送到栏目中(TO:),所以可以在名字后面加上script代码。例如
http://XXX/pm.php?action=send&username=XXXFan ";><script>alert(document..cookie)</script><b%20"
上面的链接点击以后首先弹出的是自己的cookie内容。
当然我们可以先在自己的站点上构造一个程序来收集cookie,类似于
getcookie.php?cookie=
但是如何来诱使会员点击呢,如果简单的放在论坛上,太容易被识别。所以可以利用discuz论坛程序的另外一个功能,“帖子介绍给朋友”功能。
因为discuz的这个功能对填写的emial地址没有进行任何过滤、辨别和模版,可以伪造任何人给别人发信,安全性很高。利用这个功能我们就可以伪造ExploitFan的管理员给某个会员发一封信,诱使会员点击我们准备的URL,如果诱使就看自己的手段了,例如可以说“论坛正在测试新功能,请您协助点击上面地址,我们会在后台记录您的点击在合适的时间会给您增加积分以做奖励”等等。
因为链接地址是XXXFan的,而且发信人和邮件地址都是XXXFan的官方地址,所以可信度非常高,而且不会留下任何把柄。当然为了更高的安全性,可以在<script>里的内容加密,以进一步增加隐蔽性。
至于得到cookie如何做,可以尝试cookie欺骗或者是暴力破解MD5密码
本方法适用于大部分使用discuz2.0的论坛,至于discuz3.0的利用方法请参与在我以前发表的discuz!悄悄话漏洞
【BUG】Discuz!投票的BUG
投票可以用
misc.php?action=votepoll&fid=2&tid=16980&pollanswers[]=n
(n为选项,从0开始)
的方式通过URL来直接投票
但是如果n>最大选项呢,嘻嘻~
照样提交成功,不过增加了一个标题为空的选项
这是WHOIS查找的代码。
 
<?
function whois_request($server, $query) {
$data = "";
$fp = fsockopen($server, 43);
if($fp) {
fputs($fp, $query."rn");
while(!feof($fp)) {
$data .= fread($fp, 1000);
}
fclose($fp);
}
return $data;
}
?>
<FORM>
<INPUT TYPE=HIDDEN NAME=action VALUE=query>
Server: <INPUT TYPE=TEXT NAME=server VALUE="<?echo $server?>"> <SMALL>(ie: whois.networksolutions.com)</SMALL><BR>
Domain: <INPUT TYPE=TEXT NAME=query VALUE="<?echo $query?>"> <SMALL>(ie: wackowoh.com)</SMALL><BR>
<INPUT TYPE=SUBMIT VALUE=" OK ">
</FORM>
<?
if($action == "query") {
$data = whois_request($server, $query);
echo "Sent $query to $server.<p>";
echo "Output: <p><pre>$data</pre><p>";
}
?>
[!--infotagslink--]

相关文章

  • Vue基于localStorage存储信息代码实例

    这篇文章主要介绍了Vue基于localStorage存储信息代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-11-16
  • C#利用System.Threading.Thread.Sleep即时输出信息的详解

    本篇文章是对C#利用System.Threading.Thread.Sleep即时输出信息进行了详细的分析介绍,需要的朋友参考下...2020-06-25
  • C# 获取硬盘号,CPU信息,加密解密技术的步骤

    这篇文章主要介绍了C# 获取硬盘号,CPU信息,加密解密技术的步骤,帮助大家更好的理解和学习c#,感兴趣的朋友可以了解下...2021-01-16
  • 查看Redis内存信息的命令

    Redis 是一个开源、高性能的Key-Value数据库,被广泛应用在服务器各种场景中。本文介绍几个查看Redis内存信息的命令,包括常用的info memory、info keyspace、bigkeys等。...2021-01-15
  • C#实现图片放大功能的按照像素放大图像方法

    这篇文章主要介绍了C#实现图片放大功能的按照像素放大图像方法,功能非常实用,需要的朋友可以参考下...2020-06-25
  • python中翻译功能translate模块实现方法

    在本篇文章中小编给各位整理了一篇关于python中翻译功能translate模块实现方法,有需要的朋友们可以参考下。...2020-12-18
  • 解决Feign获取异常信息的处理方案

    这篇文章主要介绍了解决Feign获取异常信息的处理方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-08-27
  • 使用BindingResult 自定义错误信息

    这篇文章主要介绍了使用BindingResult 自定义错误信息,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-10-23
  • AngularJS 让人爱不释手的八种功能

    AngularJS 让人爱不释手的八种功能,想知道AngularJS哪八种功能让人喜欢就快点看下本文吧...2016-03-28
  • 微信小程序实现导航功能的操作步骤

    这篇文章主要给大家介绍了关于微信小程序实现导航功能的操作步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-03-10
  • EMUI11上手体验 新颜值/新功能/新体验

    EMUI11值得升级吗?好不好用?下面小编带来EMUI11上手体验,一起来看看手机鸿蒙OS的提前预演...2020-12-08
  • phpMyAdmin 高级功能设置的方法图解

    phpmyadmin还有高级功能可能大部份站长不知道吧,今天本文章就来给大家介绍phpMyAdmin 高级功能设置的方法图解,希望文章对大家会有所帮助。 phpMyAdmin 安装后,默认...2016-11-25
  • C#获取客户端相关信息实例总结

    这篇文章主要介绍了C#获取客户端相关信息的方法,以实例形式总结了C#获取客户端IP地址、网络连接、硬件信息等相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
  • 小爱同学5.0新增了哪些机型 小爱同学5.0新功能介绍

    小爱同学5.0即将发布,据已知报道小爱同学5.0将新增机型,跟着小编一起来看看吧,顺便了解下即将都有哪些新功能面市吧...2020-12-08
  • C#推送信息到APNs的方法

    这篇文章主要介绍了C#推送信息到APNs的方法,涉及C#推送通知到苹果APNs的实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
  • 很全面的JavaScript常用功能汇总集合

    这篇文章主要为大家分享了一份很全面的JavaScript常用功能汇总集合,一些常用的额JS 对象、基本数据结构、功能函数等,感兴趣的小伙伴们可以参考一下...2016-01-24
  • 解决springboot利用ConfigurationProperties注解配置数据源无法读取配置信息问题

    今天在学习springboot利用ConfigurationProperties注解配置数据源的使用遇到一个问题无法读取配置信息,发现全部为null,纠结是哪里出了问题呢,今天一番思考,问题根源找到,下面把我的解决方案分享到脚本之家平台,感兴趣的朋友一起看看吧...2021-05-30
  • 一篇文章教你3分钟如何发布Qt程序

    这篇文章主要给大家介绍了关于教你3分钟如何发布Qt程序的相关资料,文中通过实例代码结束的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧...2020-08-24
  • Night Shift是什么意思 Night Shift有什么功能及作用?

    Night Shift是IOS9.3正式版系统新增加的功能之一,很多伙伴们都不清楚Night Shift是什么意思?以及Night Shift有什么用途?对此,本文小编就为大家详细介绍Night Shift的含义及作用...2016-07-04
  • Qt使用windeployqt工具实现程序打包发布方法

    本文主要介绍了Qt使用windeployqt工具实现程序打包发布方法,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-11-01